mirror of
https://github.com/galaxyproject/galaxy.git
synced 2026-09-21 13:50:20 +08:00
Merge pull request #13282 from dannon/client-dependency-updates
Client dependency updates, swap to node 16.
This commit is contained in:
@@ -104,7 +104,7 @@ jobs:
|
||||
- run: tox -e test_galaxy_packages
|
||||
js_lint:
|
||||
docker:
|
||||
- image: cimg/node:14.15
|
||||
- image: cimg/node:16.13.2
|
||||
<<: *set_workdir
|
||||
steps:
|
||||
- *restore_yarn_cache
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
src/qunit
|
||||
src/mocha
|
||||
src/libs
|
||||
src/nls
|
||||
src/legacy
|
||||
@@ -1,38 +1,36 @@
|
||||
module.exports = {
|
||||
extends: [
|
||||
{
|
||||
"extends": [
|
||||
"eslint:recommended",
|
||||
"plugin:vue/strongly-recommended",
|
||||
"plugin:vue/strongly-recommended"
|
||||
//"airbnb-base", eventually
|
||||
],
|
||||
env: {
|
||||
browser: true,
|
||||
commonjs: true,
|
||||
es6: true,
|
||||
node: true,
|
||||
jest: true,
|
||||
"env": {
|
||||
"browser": true,
|
||||
"commonjs": true,
|
||||
"es6": true,
|
||||
"node": true,
|
||||
"jest": true
|
||||
},
|
||||
parserOptions: {
|
||||
parser: "babel-eslint",
|
||||
sourceType: "module",
|
||||
"parserOptions": {
|
||||
"parser": "@babel/eslint-parser",
|
||||
"sourceType": "module"
|
||||
},
|
||||
rules: {
|
||||
"rules": {
|
||||
// Standard rules
|
||||
"no-console": "off",
|
||||
"no-unused-vars": ["error", { args: "none" }],
|
||||
"no-unused-vars": ["error", { "args": "none" }],
|
||||
"prefer-const": "error",
|
||||
"one-var": ["error", "never"],
|
||||
"curly": "error",
|
||||
|
||||
"vue/valid-v-slot": "error",
|
||||
"vue/v-slot-style": ["error", { atComponent: "v-slot", default: "v-slot", named: "longform" }],
|
||||
|
||||
// Now in strongly-recommended, enforce instead of warn.
|
||||
"vue/attribute-hyphenation": "error",
|
||||
"vue/v-slot-style": ["error", { "atComponent": "v-slot", "default": "v-slot", "named": "longform" }],
|
||||
|
||||
// Vue TODO (enable these)
|
||||
"vue/require-default-prop": "warn",
|
||||
"vue/require-prop-types": "warn",
|
||||
"vue/prop-name-casing": "warn",
|
||||
"vue/multi-word-component-names": "warn",
|
||||
|
||||
// Prettier compromises/workarounds -- mostly #wontfix?
|
||||
"vue/html-indent": "off",
|
||||
@@ -41,6 +39,7 @@ module.exports = {
|
||||
"vue/singleline-html-element-content-newline": "off",
|
||||
"vue/multiline-html-element-content-newline": "off",
|
||||
"vue/html-closing-bracket-newline": "off",
|
||||
"vue/html-closing-bracket-spacing": "off",
|
||||
"vue/html-closing-bracket-spacing": "off"
|
||||
},
|
||||
};
|
||||
"ignorePatterns": ["src/qunit", "src/mocha", "src/libs", "src/nls", "src/legacy"]
|
||||
}
|
||||
@@ -1 +1 @@
|
||||
14.15.0
|
||||
16.13.2
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
The \*.md files in this directory are rendered as a style guide generated when
|
||||
running ```yarn run styleguide```.
|
||||
|
||||
For more details see [Vue
|
||||
Styleguidist](https://github.com/vue-styleguidist/vue-styleguidist).
|
||||
@@ -1,15 +0,0 @@
|
||||
/**
|
||||
* Component root for rendering inside the styleguide, injects vuex store and other common elements
|
||||
* into each component example section.
|
||||
*/
|
||||
|
||||
import store from "../src/store";
|
||||
|
||||
export default (previewComponent) => {
|
||||
return {
|
||||
store,
|
||||
render(h) {
|
||||
return h(previewComponent);
|
||||
},
|
||||
};
|
||||
};
|
||||
@@ -1,142 +0,0 @@
|
||||
/**
|
||||
* Functions for generating the sections for the style guide. Has the old style doc glob and a
|
||||
* recursive tree-walker that looks through the components folder and tries to arrange found
|
||||
* markdown docs in a tree.
|
||||
*/
|
||||
|
||||
const path = require("path");
|
||||
const fs = require("fs");
|
||||
const glob = require("glob");
|
||||
const { humanize, titleize } = require("underscore.string");
|
||||
|
||||
/**
|
||||
* Gets the table of contents sections for documentation in the components folder.
|
||||
*
|
||||
* @param {string} rootPath absolute path to components folder
|
||||
* @return {Object} Rootnode, section map, childMap
|
||||
*/
|
||||
function getDocSections(rootPath, options = {}) {
|
||||
const { ignore = [], docSelector = "*.@(vue|md)" } = options;
|
||||
|
||||
const sections = new Map(); // absolute section directory path -> section object
|
||||
const childToParent = new Map(); // absolute child path -> absolute parent path
|
||||
|
||||
// create root node
|
||||
const rootNode = newSection(rootPath, ignore);
|
||||
sections.set(rootPath, rootNode);
|
||||
childToParent.set(rootPath, null);
|
||||
|
||||
// get all matching doc files
|
||||
const selector = path.join(rootPath, "**", docSelector);
|
||||
const allFiles = glob.sync(selector, { ignore });
|
||||
|
||||
allFiles.forEach((file) => {
|
||||
const p = path.parse(file);
|
||||
|
||||
// intermediate dir names between this dir and root
|
||||
const relPath = path.relative(rootPath, p.dir);
|
||||
const midFolders = relPath.split(path.sep);
|
||||
|
||||
// build intermediate parent sections in the event that this is deeply-nested
|
||||
while (midFolders.length) {
|
||||
const sectionPath = path.join(rootPath, ...midFolders);
|
||||
if (!sections.has(sectionPath)) {
|
||||
// create new section
|
||||
const section = newSection(sectionPath, ignore);
|
||||
sections.set(sectionPath, section);
|
||||
// register relationship for tree-build later
|
||||
const parentPath = path.join(sectionPath, "..");
|
||||
childToParent.set(sectionPath, parentPath);
|
||||
}
|
||||
midFolders.pop();
|
||||
}
|
||||
|
||||
// if it's a MD file, add to parent as a subsection
|
||||
const section = sections.get(p.dir);
|
||||
if (section && isSubsection(section, file)) {
|
||||
section.children.add({
|
||||
name: titleize(humanize(p.name)),
|
||||
content: file,
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
// assemble recursive section tree under rootNode
|
||||
buildSectionTree(sections, childToParent);
|
||||
|
||||
// rootNode is the main result, returning the maps so the user has the option to manipulate the
|
||||
// tree before handing it over to the styleguide configs
|
||||
return { sections, childToParent, rootNode };
|
||||
}
|
||||
|
||||
function isSubsection(section, file) {
|
||||
const p = path.parse(file);
|
||||
|
||||
// it's not a subsection if it's not a markdown file
|
||||
if (p.ext !== ".md") return false;
|
||||
|
||||
// it's not a subsection if it's the same file as the section content
|
||||
if (file === section.content) return false;
|
||||
|
||||
// it's not a subsection if it's an example for an existing component
|
||||
const matchingComponentPath = path.join(p.dir, `${p.name}.vue`);
|
||||
const componentExists = fs.existsSync(matchingComponentPath);
|
||||
if (componentExists) return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a new section in the TOC from passed path.
|
||||
*
|
||||
* @param {string} dir absolute directory path
|
||||
* @return {Object} section object
|
||||
*/
|
||||
function newSection(dir, ignore = []) {
|
||||
const section = {
|
||||
name: titleize(humanize(path.basename(dir))),
|
||||
components: () => glob.sync(path.join(dir, "*.vue"), { ignore }),
|
||||
children: new Set(),
|
||||
sectionDepth: 1,
|
||||
};
|
||||
|
||||
// summary doc is readme/docs/index.md
|
||||
const summarySelector = path.join(dir, "@(readme|docs|index).md");
|
||||
const summaryDocs = glob.sync(summarySelector, { ignore, nocase: true });
|
||||
if (summaryDocs.length) {
|
||||
section.content = summaryDocs[0];
|
||||
}
|
||||
|
||||
return section;
|
||||
}
|
||||
|
||||
/**
|
||||
* Turns the pair of maps into a nested object for use in the styleguide config script. Operates on
|
||||
* sections array by reference.
|
||||
*
|
||||
* @param {Map} sections Map of path -> section object
|
||||
* @param {Map} childToParent Map of childPath -> parentPath
|
||||
*/
|
||||
function buildSectionTree(sections, childToParent) {
|
||||
// add each child to its parent
|
||||
for (const [childPath, parentPath] of childToParent) {
|
||||
const child = sections.get(childPath);
|
||||
const parent = sections.get(parentPath);
|
||||
if (child && parent && parent.children) {
|
||||
parent.children.add(child);
|
||||
}
|
||||
}
|
||||
// convert child Sets to arrays now that de-dupe not required
|
||||
for (const section of sections.values()) {
|
||||
section.sections = Array.from(section.children).sort((a, b) => a.name.localeCompare(b.name));
|
||||
delete section.children;
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
// public function
|
||||
getDocSections,
|
||||
// exporting these in case user wants to tweak the result tree and rebuild it
|
||||
buildSectionTree,
|
||||
newSection,
|
||||
};
|
||||
@@ -1,379 +0,0 @@
|
||||
## Buttons
|
||||
|
||||
Regular buttons
|
||||
|
||||
```vue
|
||||
<div>
|
||||
<button type="button" class="btn btn-primary">Primary</button>
|
||||
<button type="button" class="btn btn-secondary">Secondary</button>
|
||||
<button type="button" class="btn btn-success">Success</button>
|
||||
<button type="button" class="btn btn-info">Info</button>
|
||||
<button type="button" class="btn btn-warning">Warning</button>
|
||||
<button type="button" class="btn btn-danger">Danger</button>
|
||||
<button type="button" class="btn btn-link">Link</button>
|
||||
</div>
|
||||
```
|
||||
|
||||
Disabled
|
||||
|
||||
```vue
|
||||
<div>
|
||||
<button type="button" class="btn btn-primary disabled">Primary</button>
|
||||
<button type="button" class="btn btn-secondary disabled">Secondary</button>
|
||||
<button type="button" class="btn btn-success disabled">Success</button>
|
||||
<button type="button" class="btn btn-info disabled">Info</button>
|
||||
<button type="button" class="btn btn-warning disabled">Warning</button>
|
||||
<button type="button" class="btn btn-danger disabled">Danger</button>
|
||||
<button type="button" class="btn btn-link disabled">Link</button>
|
||||
</div>
|
||||
```
|
||||
|
||||
```vue
|
||||
<div>
|
||||
<button type="button" class="btn btn-outline-primary">Primary</button>
|
||||
<button type="button" class="btn btn-outline-secondary">Secondary</button>
|
||||
<button type="button" class="btn btn-outline-success">Success</button>
|
||||
<button type="button" class="btn btn-outline-info">Info</button>
|
||||
<button type="button" class="btn btn-outline-warning">Warning</button>
|
||||
<button type="button" class="btn btn-outline-danger">Danger</button>
|
||||
</div>
|
||||
```
|
||||
|
||||
```vue
|
||||
<div class="btn-group" role="group" aria-label="Button group with nested dropdown">
|
||||
<button type="button" class="btn btn-primary">Primary</button>
|
||||
<div class="btn-group" role="group">
|
||||
<button id="btnGroupDrop1" type="button" class="btn btn-primary dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"></button>
|
||||
<div class="dropdown-menu" aria-labelledby="btnGroupDrop1">
|
||||
<a class="dropdown-item" href="javascript:void(0)">Dropdown link</a>
|
||||
<a class="dropdown-item" href="javascript:void(0)">Dropdown link</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
```
|
||||
|
||||
```vue
|
||||
<div class="btn-group" role="group" aria-label="Button group with nested dropdown">
|
||||
<button type="button" class="btn btn-success">Success</button>
|
||||
<div class="btn-group" role="group">
|
||||
<button id="btnGroupDrop2" type="button" class="btn btn-success dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"></button>
|
||||
<div class="dropdown-menu" aria-labelledby="btnGroupDrop2">
|
||||
<a class="dropdown-item" href="javascript:void(0)">Dropdown link</a>
|
||||
<a class="dropdown-item" href="javascript:void(0)">Dropdown link</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
```
|
||||
|
||||
```vue
|
||||
<div class="btn-group" role="group" aria-label="Button group with nested dropdown">
|
||||
<button type="button" class="btn btn-info">Info</button>
|
||||
<div class="btn-group" role="group">
|
||||
<button id="btnGroupDrop3" type="button" class="btn btn-info dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"></button>
|
||||
<div class="dropdown-menu" aria-labelledby="btnGroupDrop3">
|
||||
<a class="dropdown-item" href="javascript:void(0)">Dropdown link</a>
|
||||
<a class="dropdown-item" href="javascript:void(0)">Dropdown link</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
```
|
||||
|
||||
```vue
|
||||
<div class="btn-group" role="group" aria-label="Button group with nested dropdown">
|
||||
<button type="button" class="btn btn-danger">Danger</button>
|
||||
<div class="btn-group" role="group">
|
||||
<button id="btnGroupDrop4" type="button" class="btn btn-danger dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"></button>
|
||||
<div class="dropdown-menu" aria-labelledby="btnGroupDrop4">
|
||||
<a class="dropdown-item" href="javascript:void(0)">Dropdown link</a>
|
||||
<a class="dropdown-item" href="javascript:void(0)">Dropdown link</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
```
|
||||
|
||||
```vue
|
||||
<div>
|
||||
<button type="button" class="btn btn-primary btn-lg">Large button</button>
|
||||
<button type="button" class="btn btn-primary">Default button</button>
|
||||
<button type="button" class="btn btn-primary btn-sm">Small button</button>
|
||||
</div>
|
||||
```
|
||||
|
||||
## Alerts
|
||||
|
||||
```vue
|
||||
<div class="alert alert-dismissable alert-warning">
|
||||
<button type="button" class="close" data-dismiss="alert">×</button>
|
||||
<h4>Warning!</h4>
|
||||
<p>Best check yo self, you're not looking too good. Nulla vitae elit libero, a pharetra augue. Praesent commodo cursus magna, <a href="javascript:void(0)" class="alert-link">vel scelerisque nisl consectetur et</a>.</p>
|
||||
</div>
|
||||
```
|
||||
|
||||
```vue
|
||||
<div class="alert alert-dismissable alert-danger">
|
||||
<button type="button" class="close" data-dismiss="alert">×</button>
|
||||
<strong>Oh snap!</strong> <a href="javascript:void(0)" class="alert-link">Change a few things up</a> and try submitting again.
|
||||
</div>
|
||||
```
|
||||
|
||||
```vue
|
||||
<div class="alert alert-dismissable alert-success">
|
||||
<button type="button" class="close" data-dismiss="alert">×</button>
|
||||
<strong>Well done!</strong> You successfully read <a href="javascript:void(0)" class="alert-link">this important alert message</a>.
|
||||
</div>
|
||||
```
|
||||
|
||||
```vue
|
||||
<div class="alert alert-dismissable alert-info">
|
||||
<button type="button" class="close" data-dismiss="alert">×</button>
|
||||
<strong>Heads up!</strong> This <a href="javascript:void(0)" class="alert-link">alert needs your attention</a>, but it's not super important.
|
||||
</div>
|
||||
```
|
||||
|
||||
## Badges
|
||||
|
||||
```vue
|
||||
<div>
|
||||
<span class="badge badge-primary">Primary</span>
|
||||
<span class="badge badge-secondary">Secondary</span>
|
||||
<span class="badge badge-success">Success</span>
|
||||
<span class="badge badge-warning">Warning</span>
|
||||
<span class="badge badge-danger">Danger</span>
|
||||
<span class="badge badge-info">Info</span>
|
||||
</div>
|
||||
```
|
||||
|
||||
```vue
|
||||
<div class="">
|
||||
<ul class="nav nav-pills">
|
||||
<li class="active"><a href="javascript:void(0)">Home <span class="badge">42</span></a></li>
|
||||
<li><a href="javascript:void(0)">Profile <span class="badge-pill"></span></a></li>
|
||||
<li><a href="javascript:void(0)">Messages <span class="badge-pill">3</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
```
|
||||
|
||||
## Tables
|
||||
|
||||
```vue
|
||||
<div class="">
|
||||
<table class="table table-striped table-bordered table-hover">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>#</th>
|
||||
<th>Column heading</th>
|
||||
<th>Column heading</th>
|
||||
<th>Column heading</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>1</td>
|
||||
<td>Column content</td>
|
||||
<td>Column content</td>
|
||||
<td>Column content</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>2</td>
|
||||
<td>Column content</td>
|
||||
<td>Column content</td>
|
||||
<td>Column content</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>3</td>
|
||||
<td>Column content</td>
|
||||
<td>Column content</td>
|
||||
<td>Column content</td>
|
||||
</tr>
|
||||
<tr class="table-success">
|
||||
<td>4</td>
|
||||
<td>Column content</td>
|
||||
<td>Column content</td>
|
||||
<td>Column content</td>
|
||||
</tr>
|
||||
<tr class="table-danger">
|
||||
<td>5</td>
|
||||
<td>Column content</td>
|
||||
<td>Column content</td>
|
||||
<td>Column content</td>
|
||||
</tr>
|
||||
<tr class="table-warning">
|
||||
<td>6</td>
|
||||
<td>Column content</td>
|
||||
<td>Column content</td>
|
||||
<td>Column content</td>
|
||||
</tr>
|
||||
<tr class="table-active">
|
||||
<td>7</td>
|
||||
<td>Column content</td>
|
||||
<td>Column content</td>
|
||||
<td>Column content</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
```
|
||||
|
||||
## Cards
|
||||
|
||||
```vue
|
||||
<div class="row">
|
||||
<div class="col-lg-4">
|
||||
<div class="bs-component">
|
||||
<div class="card text-white bg-primary mb-3" style="max-width: 20rem;">
|
||||
<div class="card-header">Header</div>
|
||||
<div class="card-body">
|
||||
<h4 class="card-title">Primary card title</h4>
|
||||
<p class="card-text">Some quick example text to build on the card title and make up the bulk of the card's content.</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card text-white bg-secondary mb-3" style="max-width: 20rem;">
|
||||
<div class="card-header">Header</div>
|
||||
<div class="card-body">
|
||||
<h4 class="card-title">Secondary card title</h4>
|
||||
<p class="card-text">Some quick example text to build on the card title and make up the bulk of the card's content.</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card text-white bg-success mb-3" style="max-width: 20rem;">
|
||||
<div class="card-header">Header</div>
|
||||
<div class="card-body">
|
||||
<h4 class="card-title">Success card title</h4>
|
||||
<p class="card-text">Some quick example text to build on the card title and make up the bulk of the card's content.</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card text-white bg-danger mb-3" style="max-width: 20rem;">
|
||||
<div class="card-header">Header</div>
|
||||
<div class="card-body">
|
||||
<h4 class="card-title">Danger card title</h4>
|
||||
<p class="card-text">Some quick example text to build on the card title and make up the bulk of the card's content.</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card text-white bg-warning mb-3" style="max-width: 20rem;">
|
||||
<div class="card-header">Header</div>
|
||||
<div class="card-body">
|
||||
<h4 class="card-title">Warning card title</h4>
|
||||
<p class="card-text">Some quick example text to build on the card title and make up the bulk of the card's content.</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card text-white bg-info mb-3" style="max-width: 20rem;">
|
||||
<div class="card-header">Header</div>
|
||||
<div class="card-body">
|
||||
<h4 class="card-title">Info card title</h4>
|
||||
<p class="card-text">Some quick example text to build on the card title and make up the bulk of the card's content.</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card bg-light mb-3" style="max-width: 20rem;">
|
||||
<div class="card-header">Header</div>
|
||||
<div class="card-body">
|
||||
<h4 class="card-title">Light card title</h4>
|
||||
<p class="card-text">Some quick example text to build on the card title and make up the bulk of the card's content.</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card text-white bg-dark mb-3" style="max-width: 20rem;">
|
||||
<div class="card-header">Header</div>
|
||||
<div class="card-body">
|
||||
<h4 class="card-title">Dark card title</h4>
|
||||
<p class="card-text">Some quick example text to build on the card title and make up the bulk of the card's content.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-4">
|
||||
<div class="bs-component">
|
||||
<div class="card border-primary mb-3" style="max-width: 20rem;">
|
||||
<div class="card-header">Header</div>
|
||||
<div class="card-body">
|
||||
<h4 class="card-title">Primary card title</h4>
|
||||
<p class="card-text">Some quick example text to build on the card title and make up the bulk of the card's content.</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card border-secondary mb-3" style="max-width: 20rem;">
|
||||
<div class="card-header">Header</div>
|
||||
<div class="card-body">
|
||||
<h4 class="card-title">Secondary card title</h4>
|
||||
<p class="card-text">Some quick example text to build on the card title and make up the bulk of the card's content.</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card border-success mb-3" style="max-width: 20rem;">
|
||||
<div class="card-header">Header</div>
|
||||
<div class="card-body">
|
||||
<h4 class="card-title">Success card title</h4>
|
||||
<p class="card-text">Some quick example text to build on the card title and make up the bulk of the card's content.</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card border-danger mb-3" style="max-width: 20rem;">
|
||||
<div class="card-header">Header</div>
|
||||
<div class="card-body">
|
||||
<h4 class="card-title">Danger card title</h4>
|
||||
<p class="card-text">Some quick example text to build on the card title and make up the bulk of the card's content.</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card border-warning mb-3" style="max-width: 20rem;">
|
||||
<div class="card-header">Header</div>
|
||||
<div class="card-body">
|
||||
<h4 class="card-title">Warning card title</h4>
|
||||
<p class="card-text">Some quick example text to build on the card title and make up the bulk of the card's content.</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card border-info mb-3" style="max-width: 20rem;">
|
||||
<div class="card-header">Header</div>
|
||||
<div class="card-body">
|
||||
<h4 class="card-title">Info card title</h4>
|
||||
<p class="card-text">Some quick example text to build on the card title and make up the bulk of the card's content.</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card border-light mb-3" style="max-width: 20rem;">
|
||||
<div class="card-header">Header</div>
|
||||
<div class="card-body">
|
||||
<h4 class="card-title">Light card title</h4>
|
||||
<p class="card-text">Some quick example text to build on the card title and make up the bulk of the card's content.</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card border-dark mb-3" style="max-width: 20rem;">
|
||||
<div class="card-header">Header</div>
|
||||
<div class="card-body">
|
||||
<h4 class="card-title">Dark card title</h4>
|
||||
<p class="card-text">Some quick example text to build on the card title and make up the bulk of the card's content.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-lg-4">
|
||||
<div class="bs-component">
|
||||
<div class="card mb-3">
|
||||
<h3 class="card-header">Card header</h3>
|
||||
<div class="card-body">
|
||||
<h5 class="card-title">Special title treatment</h5>
|
||||
<h6 class="card-subtitle text-muted">Support card subtitle</h6>
|
||||
</div>
|
||||
<img style="height: 200px; width: 100%; display: block;" src="data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%22318%22%20height%3D%22180%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20318%20180%22%20preserveAspectRatio%3D%22none%22%3E%3Cdefs%3E%3Cstyle%20type%3D%22text%2Fcss%22%3E%23holder_158bd1d28ef%20text%20%7B%20fill%3Argba(255%2C255%2C255%2C.75)%3Bfont-weight%3Anormal%3Bfont-family%3AHelvetica%2C%20monospace%3Bfont-size%3A16pt%20%7D%20%3C%2Fstyle%3E%3C%2Fdefs%3E%3Cg%20id%3D%22holder_158bd1d28ef%22%3E%3Crect%20width%3D%22318%22%20height%3D%22180%22%20fill%3D%22%23777%22%3E%3C%2Frect%3E%3Cg%3E%3Ctext%20x%3D%22129.359375%22%20y%3D%2297.35%22%3EImage%3C%2Ftext%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E" alt="Card image">
|
||||
<div class="card-body">
|
||||
<p class="card-text">Some quick example text to build on the card title and make up the bulk of the card's content.</p>
|
||||
</div>
|
||||
<ul class="list-group list-group-flush">
|
||||
<li class="list-group-item">Cras justo odio</li>
|
||||
<li class="list-group-item">Dapibus ac facilisis in</li>
|
||||
<li class="list-group-item">Vestibulum at eros</li>
|
||||
</ul>
|
||||
<div class="card-body">
|
||||
<a href="javascript:void(0)" class="card-link">Card link</a>
|
||||
<a href="javascript:void(0)" class="card-link">Another link</a>
|
||||
</div>
|
||||
<div class="card-footer text-muted">
|
||||
2 days ago
|
||||
</div>
|
||||
</div>
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<h4 class="card-title">Card title</h4>
|
||||
<h6 class="card-subtitle mb-2 text-muted">Card subtitle</h6>
|
||||
<p class="card-text">Some quick example text to build on the card title and make up the bulk of the card's content.</p>
|
||||
<a href="javascript:void(0)" class="card-link">Card link</a>
|
||||
<a href="javascript:void(0)" class="card-link">Another link</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
```
|
||||
@@ -1,49 +0,0 @@
|
||||
## Buttons
|
||||
|
||||
```vue
|
||||
<button>Just a default button</button>
|
||||
```
|
||||
|
||||
```vue
|
||||
<a href="javascript:void(0)" class="action-button">An anchor with .action-button</a>
|
||||
```
|
||||
|
||||
All the crazy permutations of menu button...
|
||||
|
||||
```vue
|
||||
<a href="javascript:void(0)" class="menubutton">An anchor with .menu-button</a>
|
||||
```
|
||||
|
||||
```vue
|
||||
<a href="javascript:void(0)" class="menubutton popup">An anchor with .menu-button.popup</a>
|
||||
```
|
||||
|
||||
```vue
|
||||
<a href="javascript:void(0)" class="menubutton popup split">
|
||||
<a class="menubutton-label">An anchor with .menu-button.popup.split</a>
|
||||
</a>
|
||||
```
|
||||
|
||||
## Radio Buttons
|
||||
|
||||
As generated by mvc.ui.ui-options
|
||||
|
||||
```vue
|
||||
<div class="btn-group btn-group-toggle" data-toggle="buttons">
|
||||
<label class="btn btn-secondary active">
|
||||
<input type="radio" name="options" id="option1" autocomplete="off" checked> Active
|
||||
</label>
|
||||
<label class="btn btn-secondary">
|
||||
<input type="radio" name="options" id="option2" autocomplete="off"> Radio
|
||||
</label>
|
||||
<label class="btn btn-secondary">
|
||||
<input type="radio" name="options" id="option3" autocomplete="off"> Radio
|
||||
</label>
|
||||
</div>
|
||||
```
|
||||
|
||||
## Pagination
|
||||
|
||||
```vue
|
||||
<ul class="pagination"><li class="page-item disabled"><a class="page-link" href="#page/1"><span class="fa fa-angle-double-left"></span></a></li><li class="page-item disabled"><a class="page-link" href="#page/1">0</a></li><li class="page-item active"><a class="page-link" href="#page/1">1</a></li><li class="page-item"><a class="page-link" href="#page/2">2</a></li><li class="page-item"><a class="page-link" href="#page/4"><span class="fa fa-angle-double-right"></span></a></li></ul>
|
||||
```
|
||||
@@ -1,55 +0,0 @@
|
||||
## Forms
|
||||
|
||||
Manually crafted "tool" form class, this is broken in the BS4 branch I think.
|
||||
|
||||
```vue
|
||||
<div class="tool-form">
|
||||
<form name="foo">
|
||||
<div class="form-row">
|
||||
<label>Label Input 1</label>
|
||||
<input id="input1" type="text" name="input1" size="40" />
|
||||
</div>
|
||||
<div class="form-row">
|
||||
<input type="submit" id="send" name="submit" value="submit" />
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
```
|
||||
|
||||
Portlet variant generated by mvc.form.form-view
|
||||
|
||||
```vue
|
||||
<div class="ui-portlet-limited" id="uid-8">
|
||||
<div class="portlet-header">
|
||||
<div class="portlet-operations"></div>
|
||||
<div class="portlet-title">
|
||||
<i class="portlet-title-icon fa fa-unlock-alt" style="display: inline;"></i>
|
||||
<span class="portlet-title-text">Portlet Title</span></div>
|
||||
</div>
|
||||
<div class="portlet-content">
|
||||
<div class="portlet-body">
|
||||
<div class="ui-message alert alert-info"></div>
|
||||
<div>
|
||||
<div class="ui-form-element section-row">
|
||||
<div class="ui-form-error ui-error"><span class="fa fa-arrow-down"></span><span class="ui-form-error-text"></span></div>
|
||||
<div class="ui-form-title">
|
||||
<div class="ui-form-collapsible" style="display: none;">
|
||||
<i class="ui-form-collapsible-icon"></i>
|
||||
<span class="ui-form-collapsible-text"></span>
|
||||
</div>
|
||||
<span class="ui-form-title-text">Text Field 1</span>
|
||||
</div>
|
||||
<div class="ui-form-field">
|
||||
<input class="ui-input" id="field-uid-4" type="text">
|
||||
<span class="ui-form-info"></span>
|
||||
<div class="ui-form-backdrop" style="display: none;"></div>
|
||||
</div>
|
||||
<div class="ui-form-preview" style="display: none;"></div>
|
||||
</div>
|
||||
<div class="ui-form-element section-row">
|
||||
<div class="ui-form-error ui-error" style="display: none;"><span class="fa fa-arrow-down"></span><span class="ui-form-error-text"></span></div>
|
||||
<div class="ui-form-title"><div class="ui-form-collapsible" style="display: none;"><i class="ui-form-collapsible-icon"></i><span class="ui-form-collapsible-text"></span></div><span class="ui-form-title-text" style="display: inline;">Password</span></div>
|
||||
<div class="ui-form-field">
|
||||
<input class="ui-input" type="password"><span class="ui-form-info"></span><div class="ui-form-backdrop" style="display: none;"></div></div><div class="ui-form-preview" style="display: none;"></div></div>
|
||||
<div class="ui-form-element section-row" id="uid-7" style="display: none;"><div class="ui-form-error ui-error" style="display: none;"><span class="fa fa-arrow-down"></span><span class="ui-form-error-text"></span></div><div class="ui-form-title"><div class="ui-form-collapsible" style="display: none;"><i class="ui-form-collapsible-icon"></i><span class="ui-form-collapsible-text"></span></div><span class="ui-form-title-text" style="display: inline;">token</span></div><div class="ui-form-field"><div id="field-uid-7"><div style="display: none;"></div><div></div></div><span class="ui-form-info"></span><div class="ui-form-backdrop" style="display: none;"></div></div><div class="ui-form-preview" style="display: none;"></div></div></div></div><div class="portlet-buttons"><button type="button" class="ui-button-default btn btn-primary ui-clear-float" id="submit" data-original-title="" title=""><i class="icon fa fa-save ui-margin-right"></i><span class="title">Submit</span><div class="progress" style="display: none;"><div class="progress-bar" style="width: 0%;"></div></div></button></div></div><div class="portlet-backdrop"></div></div>
|
||||
```
|
||||
@@ -1,69 +0,0 @@
|
||||
## Masthead
|
||||
|
||||
As generated by layout.masthead.js
|
||||
|
||||
Default height:
|
||||
|
||||
```vue
|
||||
<nav id="masthead" class="navbar navbar-expand justify-content-center navbar-dark bg-dark">
|
||||
<a class="navbar-brand">
|
||||
<img class="navbar-brand-image"/>
|
||||
<span class="navbar-brand-title">Title</span>
|
||||
</a>
|
||||
<ul class="navbar-nav">
|
||||
<li class="nav-item">
|
||||
<a class="nav-link">Header 1</a>
|
||||
</li>
|
||||
<li class="nav-item dropdown">
|
||||
<a class="nav-link dropdown-toggle">Header 2</a>
|
||||
</li>
|
||||
<li class="nav-item active">
|
||||
<a class="nav-link">Active Header</a>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
```
|
||||
|
||||
Override height with "height: 80px;"
|
||||
|
||||
```vue
|
||||
<nav id="masthead" class="navbar navbar-expand justify-content-center navbar-dark bg-dark" style="height: 80px;">
|
||||
<a class="navbar-brand">
|
||||
<img class="navbar-brand-image"/>
|
||||
<span class="navbar-brand-title">Title</span>
|
||||
</a>
|
||||
<ul class="navbar-nav">
|
||||
<li class="nav-item">
|
||||
<a class="nav-link">Header 1</a>
|
||||
</li>
|
||||
<li class="nav-item dropdown">
|
||||
<a class="nav-link dropdown-toggle">Header 2</a>
|
||||
</li>
|
||||
<li class="nav-item active">
|
||||
<a class="nav-link">Active Header</a>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
```
|
||||
|
||||
Override height with "height: 4rem;"
|
||||
|
||||
```vue
|
||||
<nav id="masthead" class="navbar navbar-expand justify-content-center navbar-dark bg-dark" style="height: 4rem;">
|
||||
<a class="navbar-brand">
|
||||
<img class="navbar-brand-image"/>
|
||||
<span class="navbar-brand-title">Title</span>
|
||||
</a>
|
||||
<ul class="navbar-nav">
|
||||
<li class="nav-item">
|
||||
<a class="nav-link">Header 1</a>
|
||||
</li>
|
||||
<li class="nav-item dropdown">
|
||||
<a class="nav-link dropdown-toggle">Header 2</a>
|
||||
</li>
|
||||
<li class="nav-item active">
|
||||
<a class="nav-link">Active Header</a>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
```
|
||||
@@ -1,19 +0,0 @@
|
||||
## Popup menus
|
||||
|
||||
These are the classes for the menu itself, normally floating, so placed inside
|
||||
a relative element.
|
||||
|
||||
```vue
|
||||
<div style="position: relative; height: 12rem;">
|
||||
<div class="popmenu-wrapper" style="top: 0;">
|
||||
<ul class="dropdown-menu">
|
||||
<li class="head"><a>Heading one</a></li>
|
||||
<li><a>An item</a></li>
|
||||
<li><a>Another item</a></li>
|
||||
<li class="head"><a>Heading two</a></li>
|
||||
<li><a>Third item</a></li>
|
||||
<li><a>Last item</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
```
|
||||
@@ -1,33 +0,0 @@
|
||||
### Panel Messages
|
||||
|
||||
Messages that appear across the top of the panel view below the masthead.
|
||||
|
||||
```vue
|
||||
<div>
|
||||
<div v-for="type in ['done', 'info', 'warning', 'error']">
|
||||
<div v-bind:class="'panel-' + type + '-message'">I'm a panel-{{type}}-message</div>
|
||||
</div>
|
||||
</div>
|
||||
```
|
||||
|
||||
### Large Messages
|
||||
|
||||
Used for providing feedback inline.
|
||||
|
||||
```vue
|
||||
<div>
|
||||
<div v-for="type in ['done', 'info', 'warning', 'error']">
|
||||
<div v-bind:class="type + 'messagelarge'">I'm a {{type}}messagelarge</div>
|
||||
</div>
|
||||
</div>
|
||||
```
|
||||
|
||||
### Small Messages
|
||||
|
||||
```vue
|
||||
<div>
|
||||
<div v-for="type in ['done', 'info', 'warning', 'error']">
|
||||
<div v-bind:class="type + 'message'">I'm a {{type}}message</div>
|
||||
</div>
|
||||
</div>
|
||||
```
|
||||
@@ -1,20 +0,0 @@
|
||||
## Panel (toolMenuContainer)
|
||||
|
||||
```vue
|
||||
<div style="height: 200px;">
|
||||
<div style="position: absolute; width: 250px; height: 200px; border: dotted gray 1px">
|
||||
<div class="unified-panel-header">
|
||||
<div class="unified-panel-header-inner">
|
||||
Header
|
||||
</div>
|
||||
</div>
|
||||
<div class="unified-panel-body">
|
||||
<div class="toolMenuContainer">
|
||||
one<br>
|
||||
two<br>
|
||||
three<br>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
```
|
||||
@@ -1,14 +0,0 @@
|
||||
## Tables
|
||||
|
||||
Tables using the .grid class
|
||||
|
||||
```vue
|
||||
<table class="grid">
|
||||
<thead class="grid-table-header">
|
||||
<tr><th>One</th><th>Two</th></tr>
|
||||
</thead>
|
||||
<tbody class="grid-table-body">
|
||||
<tr><td>Value 1</td><td>Value 2</td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
```
|
||||
@@ -1,32 +0,0 @@
|
||||
## Tabs
|
||||
|
||||
Tabs as generated by mvc.ui.ui-tabs
|
||||
|
||||
```vue
|
||||
<ul style="display: flex;" class="tab-navigation nav nav-tabs">
|
||||
<li class="tab-element nav-item" id="tab-attribute" style="display: list-item;" data-original-title="" title="">
|
||||
<a class="nav-link active" id="tab-title-link-attribute">
|
||||
<i class="tab-icon fa fa-bars"></i>
|
||||
<span id="tab-title-text-attribute" class="tab-title-text">Attributes</span>
|
||||
</a>
|
||||
</li>
|
||||
<li class="tab-element nav-item" id="tab-convert" style="display: list-item;" data-original-title="" title="">
|
||||
<a class="nav-link" id="tab-title-link-convert">
|
||||
<i class="tab-icon fa fa-gear"></i>
|
||||
<span id="tab-title-text-convert" class="tab-title-text">Convert</span>
|
||||
</a>
|
||||
</li>
|
||||
<li class="tab-element nav-item" id="tab-datatype" style="display: list-item;" data-original-title="" title="">
|
||||
<a class="nav-link" id="tab-title-link-datatype">
|
||||
<i class="tab-icon fa fa-database"></i>
|
||||
<span id="tab-title-text-datatype" class="tab-title-text">Datatypes</span>
|
||||
</a>
|
||||
</li>
|
||||
<li class="tab-element nav-item" id="tab-permissions" style="display: list-item;" data-original-title="" title="">
|
||||
<a class="nav-link" id="tab-title-link-permissions">
|
||||
<i class="tab-icon fa fa-user"></i>
|
||||
<span id="tab-title-text-permissions" class="tab-title-text">Permissions</span>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
```
|
||||
@@ -1 +0,0 @@
|
||||
# testdocs/a-file.md
|
||||
@@ -1 +0,0 @@
|
||||
# testdocs/another-file.md
|
||||
@@ -1,3 +0,0 @@
|
||||
<template>
|
||||
<div>Yay!</div>
|
||||
</template>
|
||||
@@ -1 +0,0 @@
|
||||
# ignored-file.md
|
||||
@@ -1 +0,0 @@
|
||||
# some-loose-file.md
|
||||
@@ -1 +0,0 @@
|
||||
# loose file
|
||||
@@ -1 +0,0 @@
|
||||
# testdocs/abc/readme.md
|
||||
@@ -1 +0,0 @@
|
||||
# foo
|
||||
@@ -1 +0,0 @@
|
||||
# another loose file
|
||||
@@ -1 +0,0 @@
|
||||
# Loose file
|
||||
@@ -1,62 +0,0 @@
|
||||
/**
|
||||
* Tests the functions which build the sections for the styleguide.
|
||||
*/
|
||||
|
||||
const path = require("path");
|
||||
const { getDocSections } = require("../sections");
|
||||
|
||||
const getSectionByName = (sections, name) => sections.find((o) => o.name == name);
|
||||
|
||||
describe("getDocSections", () => {
|
||||
const ignore = [
|
||||
// ignoring a whole directory
|
||||
"**/ignored/*",
|
||||
// ignoring a file
|
||||
"**/ignore*",
|
||||
];
|
||||
const testDocRoot = path.join(__dirname, "sample-docs");
|
||||
const { rootNode } = getDocSections(testDocRoot, { ignore });
|
||||
|
||||
test("section generation", () => {
|
||||
expect(rootNode.name).toEqual("Sample Docs");
|
||||
expect(rootNode.sections.length).toEqual(7);
|
||||
expect(rootNode.content).toBeUndefined();
|
||||
});
|
||||
|
||||
test("nested subsection should appear even if no docs in intermediate folders", () => {
|
||||
const deepSection = getSectionByName(rootNode.sections, "Nested Folders");
|
||||
expect(deepSection.sections.length).toEqual(1);
|
||||
});
|
||||
|
||||
test("subdirectory with readme should register as summary", () => {
|
||||
const subsection = getSectionByName(rootNode.sections, "Has Readme");
|
||||
|
||||
// readme interpreted as content file and not as loose section
|
||||
// one other loose file
|
||||
expect(subsection.content).toContain("readme.md");
|
||||
expect(subsection.sections.length).toEqual(1);
|
||||
});
|
||||
|
||||
test("subdirectory with no readme file", () => {
|
||||
const subsection = getSectionByName(rootNode.sections, "No Summary File");
|
||||
|
||||
// should just see 2 folders no summary
|
||||
expect(subsection.content).toBeUndefined();
|
||||
expect(subsection.sections.length).toEqual(2);
|
||||
});
|
||||
|
||||
test("subdirectory with ignored file", () => {
|
||||
const subsection = getSectionByName(rootNode.sections, "Contains Ommitted File");
|
||||
expect(subsection.sections.length).toEqual(1);
|
||||
});
|
||||
|
||||
test("ignored subdirectory", () => {
|
||||
const ignoredSection = getSectionByName(rootNode.sections, "Ignored");
|
||||
expect(ignoredSection).toBeUndefined();
|
||||
});
|
||||
|
||||
test("should not create a section for a component example file", () => {
|
||||
const section = getSectionByName(rootNode.sections, "Component Example");
|
||||
expect(section.sections.length).toEqual(0);
|
||||
});
|
||||
});
|
||||
+63
-64
@@ -11,8 +11,7 @@
|
||||
},
|
||||
"license": "AFL-3.0",
|
||||
"resolutions": {
|
||||
"**/chokidar": "3.5.2",
|
||||
"**/ua-parser-js": "0.7.30"
|
||||
"**/chokidar": "3.5.3"
|
||||
},
|
||||
"dependencies": {
|
||||
"@fortawesome/fontawesome-free": "^5.15.4",
|
||||
@@ -20,21 +19,22 @@
|
||||
"@fortawesome/free-brands-svg-icons": "^5.15.4",
|
||||
"@fortawesome/free-regular-svg-icons": "^5.15.4",
|
||||
"@fortawesome/free-solid-svg-icons": "^5.15.4",
|
||||
"@fortawesome/vue-fontawesome": "^2.0.2",
|
||||
"@fortawesome/vue-fontawesome": "^2.0.6",
|
||||
"@galaxyproject/bootstrap-tour": "^0.12.1",
|
||||
"@handsontable/vue": "^2.0.0-beta1",
|
||||
"@hirez_io/observer-spy": "^2.1.0",
|
||||
"@hirez_io/observer-spy": "^2.1.2",
|
||||
"@johmun/vue-tags-input": "^2.1.0",
|
||||
"@sentry/browser": "^5.20.1",
|
||||
"axios": "^0.21.1",
|
||||
"@sentry/browser": "^6.17.4",
|
||||
"assert": "^2.0.0",
|
||||
"axios": "^0.25.0",
|
||||
"babel-runtime": "^6.26.0",
|
||||
"backbone": "1.4.0",
|
||||
"bootstrap": "4.5.0",
|
||||
"bootstrap": "4.6",
|
||||
"bootstrap-vue": "^2.21.2",
|
||||
"citation-js": "^0.5.1",
|
||||
"core-js": "^3.19.1",
|
||||
"citation-js": "^0.5.5",
|
||||
"core-js": "^3.21.0",
|
||||
"d3": "3",
|
||||
"date-fns": "^2.24.0",
|
||||
"date-fns": "^2.28.0",
|
||||
"decode-uri-component": "^0.2.0",
|
||||
"deep-diff": "^1.0.2",
|
||||
"deep-equal": "^2.0.5",
|
||||
@@ -44,18 +44,19 @@
|
||||
"flush-promises": "^1.0.2",
|
||||
"glob": "^7.2.0",
|
||||
"handsontable": "^2.0.0",
|
||||
"imask": "^6.2.2",
|
||||
"imask": "^6.4.0",
|
||||
"in-viewport": "^3.6.0",
|
||||
"is-promise": "^4.0.0",
|
||||
"isotope-layout": "^3.0.6",
|
||||
"iter-tools": "7.1.4",
|
||||
"iter-tools": "7.2.0",
|
||||
"jquery": "2",
|
||||
"jquery-migrate": "~1.4",
|
||||
"jquery-mousewheel": "^3.1.13",
|
||||
"jquery-ui": "^1.12.1",
|
||||
"jquery-ui": "^1.13.1",
|
||||
"jquery.cookie": "^1.4.1",
|
||||
"jspdf": "^2.4.0",
|
||||
"linkifyjs": "^2.1.9",
|
||||
"jspdf": "^2.5.1",
|
||||
"linkify-html": "^3.0.5",
|
||||
"linkifyjs": "^3.0.5",
|
||||
"markdown-it": "^12.3.2",
|
||||
"markdown-it-regexp": "^0.4.0",
|
||||
"moment": "2.29.1",
|
||||
@@ -68,36 +69,38 @@
|
||||
"pouchdb-find": "^7.2.2",
|
||||
"pouchdb-upsert": "^2.2.0",
|
||||
"pretty-bytes": "^5.6.0",
|
||||
"proper-skip-list": "^4.0.2",
|
||||
"proper-skip-list": "^4.1.0",
|
||||
"pyre-to-regexp": "^0.0.5",
|
||||
"querystring-es3": "^0.2.1",
|
||||
"regenerator-runtime": "^0.13.9",
|
||||
"regression": "^2.0.1",
|
||||
"requirejs": "2.3.6",
|
||||
"rxjs": "^7.4.0",
|
||||
"rxjs-spy": "^8.0.0",
|
||||
"rxjs": "^7.5.2",
|
||||
"rxjs-spy": "^8.0.2",
|
||||
"rxjs-spy-devtools-plugin": "^0.0.4",
|
||||
"slugify": "^1.6.0",
|
||||
"slugify": "^1.6.5",
|
||||
"snake-case": "^3.0.4",
|
||||
"splitpanes": "2.3.8",
|
||||
"stream-browserify": "^3.0.0",
|
||||
"threads": "^1.6.5",
|
||||
"threads": "^1.7.0",
|
||||
"timers-browserify": "^2.0.12",
|
||||
"toastr": "^2.1.4",
|
||||
"tus-js-client": "^2.3.0",
|
||||
"underscore": "^1.10.2",
|
||||
"underscore.string": "^3.3.5",
|
||||
"underscore": "^1.13.2",
|
||||
"underscore.string": "^3.3.6",
|
||||
"util": "^0.12.4",
|
||||
"vue": "^2.6.14",
|
||||
"vue-infinite-scroll": "^2.0.2",
|
||||
"vue-multiselect": "^2.1.0",
|
||||
"vue-multiselect": "^2.1.6",
|
||||
"vue-observe-visibility": "^1.0.0",
|
||||
"vue-prismjs": "^1.2.0",
|
||||
"vue-router": "^3.5.2",
|
||||
"vue-router": "^3.5.3",
|
||||
"vue-rx": "^6.2.0",
|
||||
"vue-scrollto": "^2.20.0",
|
||||
"vuedraggable": "2.24.3",
|
||||
"vueisotope": "^3.1.2",
|
||||
"vuex": "^3.4.0",
|
||||
"vuex-cache": "^3.2.0",
|
||||
"vuex": "^3.6.2",
|
||||
"vuex-cache": "^3.4.0",
|
||||
"vuex-persist": "^3.1.3",
|
||||
"vuex-persistedstate": "^4.1.0",
|
||||
"xml-beautifier": "^0.5.0"
|
||||
@@ -117,76 +120,72 @@
|
||||
"save-build-hash": "(git rev-parse HEAD 2>/dev/null || echo '') >../static/client_build_hash.txt",
|
||||
"prettier": "prettier --write 'src/style/scss/**/*.scss' 'src/**/{*.js,*.vue}' '!src/libs/**'",
|
||||
"prettier-check": "prettier --check 'src/style/scss/**/*.scss' 'src/**/{*.js,*.vue}' '!src/libs/**'",
|
||||
"styleguide": "vue-styleguidist server",
|
||||
"styleguide:build": "vue-styleguidist build",
|
||||
"test": "yarn run qunit && yarn run jest",
|
||||
"jest": "jest --config tests/jest/jest.config.js",
|
||||
"jest-watch": "jest --config tests/jest/jest.config.js --watch",
|
||||
"qunit": "karma start tests/karma/karma.config.qunit.js",
|
||||
"eslint": "eslint -c .eslintrc.js src --ext .js,.vue"
|
||||
"eslint": "eslint -c .eslintrc.json src --ext .js,.vue"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@babel/core": "^7.15.8",
|
||||
"@babel/helper-validator-identifier": "^7.15.7",
|
||||
"@babel/core": "^7.17.0",
|
||||
"@babel/eslint-parser": "^7.17.0",
|
||||
"@babel/helper-validator-identifier": "^7.16.7",
|
||||
"@babel/plugin-syntax-dynamic-import": "^7.8.3",
|
||||
"@babel/plugin-transform-runtime": "^7.15.8",
|
||||
"@babel/preset-env": "^7.15.8",
|
||||
"@babel/plugin-transform-runtime": "^7.17.0",
|
||||
"@babel/preset-env": "^7.16.11",
|
||||
"@cerner/duplicate-package-checker-webpack-plugin": "^2.1.0",
|
||||
"@testing-library/jest-dom": "^5.14.1",
|
||||
"@vue/test-utils": "^1.2.2",
|
||||
"@vue/vue2-jest": "^27.0.0-alpha.2",
|
||||
"@testing-library/jest-dom": "^5.16.2",
|
||||
"@vue/test-utils": "^1.3.0",
|
||||
"@vue/vue2-jest": "^27.0.0-alpha.4",
|
||||
"amdi18n-loader": "^0.9.3",
|
||||
"autoprefixer": "^10.3.5",
|
||||
"autoprefixer": "^10.4.2",
|
||||
"axios-mock-adapter": "^1.20.0",
|
||||
"babel-core": "^7.0.0-bridge.0",
|
||||
"babel-eslint": "^10.1.0",
|
||||
"babel-jest": "^27.2.5",
|
||||
"babel-loader": "^8.2.2",
|
||||
"babel-jest": "^27.4.6",
|
||||
"babel-loader": "^8.2.3",
|
||||
"babel-plugin-transform-inline-environment-variables": "^0.4.3",
|
||||
"babel-plugin-transform-vue-template": "^0.4.2",
|
||||
"buffer": "^6.0.3",
|
||||
"chai": "^4.2.0",
|
||||
"chokidar": "^3.5.2",
|
||||
"css-loader": "^6.3.0",
|
||||
"css-minimizer-webpack-plugin": "^3.0.2",
|
||||
"chai": "^4.3.6",
|
||||
"css-loader": "^6.6.0",
|
||||
"css-minimizer-webpack-plugin": "^3.4.1",
|
||||
"del": "^6.0.0",
|
||||
"eslint": "^7.32.0",
|
||||
"eslint-plugin-vue": "^7.18.0",
|
||||
"expose-loader": "^3.0.0",
|
||||
"eslint": "^8.8.0",
|
||||
"eslint-plugin-vue": "^8.4.1",
|
||||
"expose-loader": "^3.1.0",
|
||||
"gulp": "^4.0.2",
|
||||
"ignore-loader": "^0.1.2",
|
||||
"imports-loader": "^3.0.0",
|
||||
"jest": "^27.2.5",
|
||||
"imports-loader": "^3.1.1",
|
||||
"jest": "^27.4.7",
|
||||
"jest-raw-loader": "^1.0.1",
|
||||
"jest-transform-yaml": "0.1.2",
|
||||
"jest-transform-yaml": "1.0.0",
|
||||
"json-loader": "^0.5.7",
|
||||
"karma": "^6.3.4",
|
||||
"karma": "^6.3.13",
|
||||
"karma-chrome-launcher": "^3.1.0",
|
||||
"karma-polyfill": "^1.1.0",
|
||||
"karma-qunit": "^4.1.1",
|
||||
"karma-qunit": "^4.1.2",
|
||||
"karma-webpack": "^5.0.0",
|
||||
"mini-css-extract-plugin": "^2.4.2",
|
||||
"postcss-loader": "^6.1.1",
|
||||
"prettier": "^2.4.1",
|
||||
"mini-css-extract-plugin": "^2.5.3",
|
||||
"postcss-loader": "^6.2.1",
|
||||
"prettier": "^2.5.1",
|
||||
"process": "^0.11.10",
|
||||
"qunit": "^2.17.2",
|
||||
"raw-loader": "^4.0.2",
|
||||
"sass": "^1.42.1",
|
||||
"sass-loader": "^12.1.0",
|
||||
"sinon": "^11.1.2",
|
||||
"sass": "^1.49.7",
|
||||
"sass-loader": "^12.4.0",
|
||||
"sinon": "^13.0.1",
|
||||
"store": "^2.0.12",
|
||||
"style-loader": "^3.3.0",
|
||||
"style-loader": "^3.3.1",
|
||||
"uuid": "^8.3.2",
|
||||
"vue-loader": "^15.9.8",
|
||||
"vue-styleguidist": "^4.41.2",
|
||||
"vue-template-compiler": "^2.6.14",
|
||||
"webpack": "^5.58.0",
|
||||
"webpack-cli": "^4.9.0",
|
||||
"webpack-dev-server": "^4.2.1",
|
||||
"webpack": "^5.68.0",
|
||||
"webpack-cli": "^4.9.2",
|
||||
"webpack-dev-server": "^4.7.4",
|
||||
"webpack-merge": "^5.8.0",
|
||||
"yaml-loader": "^0.6.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"postcss": "^8.2.8"
|
||||
"postcss": "^8.4.6"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -248,13 +248,7 @@
|
||||
</span>
|
||||
</div>
|
||||
<div
|
||||
class="
|
||||
unpaired-filter
|
||||
forward-unpaired-filter
|
||||
float-left
|
||||
search-input search-query
|
||||
input-group
|
||||
">
|
||||
class="unpaired-filter forward-unpaired-filter float-left search-input search-query input-group">
|
||||
<input
|
||||
type="text"
|
||||
:placeholder="filterTextPlaceholder"
|
||||
@@ -307,13 +301,7 @@
|
||||
>
|
||||
</div>
|
||||
<div
|
||||
class="
|
||||
unpaired-filter
|
||||
reverse-unpaired-filter
|
||||
float-left
|
||||
search-input search-query
|
||||
input-group
|
||||
">
|
||||
class="unpaired-filter reverse-unpaired-filter float-left search-input search-query input-group">
|
||||
<input
|
||||
type="text"
|
||||
:placeholder="filterTextPlaceholder"
|
||||
|
||||
@@ -51,7 +51,7 @@ export default {
|
||||
dismissCountDown: 0,
|
||||
errorMessage: "",
|
||||
fractionWarning: "This output doesn't allow fractions!",
|
||||
decimalPlaces: this.isInteger ? 0 : this.getNumberOfDecimals(this.value),
|
||||
decimalPlaces: this.type.toLowerCase() === "integer" ? 0 : this.getNumberOfDecimals(this.value),
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<div
|
||||
class="galaxy-loader"
|
||||
:class="[`galaxy-loader_${style}`, { 'galaxy-loader_center': center }]"
|
||||
:class="[`galaxy-loader_${variant}`, { 'galaxy-loader_center': center }]"
|
||||
:style="{ transform: `scale(${size / 100})` }">
|
||||
<div class="galaxy-loader_strip-1"></div>
|
||||
<div class="galaxy-loader_strip-2"></div>
|
||||
@@ -12,7 +12,7 @@
|
||||
<script>
|
||||
export default {
|
||||
props: {
|
||||
style: {
|
||||
variant: {
|
||||
type: String,
|
||||
default: "light",
|
||||
},
|
||||
|
||||
@@ -36,7 +36,7 @@ import { MAX_DESCRIPTION_LENGTH } from "components/Libraries/library-utils";
|
||||
import BootstrapVue from "bootstrap-vue";
|
||||
import Vue from "vue";
|
||||
|
||||
import linkify from "linkifyjs/html";
|
||||
import linkifyHtml from "linkify-html";
|
||||
Vue.use(BootstrapVue);
|
||||
|
||||
export default {
|
||||
@@ -67,7 +67,7 @@ export default {
|
||||
this.$emit("toggleDescriptionExpand");
|
||||
},
|
||||
linkify(raw_text) {
|
||||
return linkify(raw_text);
|
||||
return linkifyHtml(raw_text);
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
@@ -277,7 +277,7 @@ import UtcDate from "components/UtcDate";
|
||||
import BootstrapVue from "bootstrap-vue";
|
||||
import { Services } from "./services";
|
||||
import Utils from "utils/utils";
|
||||
import linkify from "linkifyjs/html";
|
||||
import linkifyHtml from "linkify-html";
|
||||
import { fields } from "./table-fields";
|
||||
import { Toast } from "ui/toast";
|
||||
import FolderTopBar from "./TopToolbar/FolderTopBar";
|
||||
@@ -507,7 +507,7 @@ export default {
|
||||
this.isBusy = value;
|
||||
},
|
||||
linkify(raw_text) {
|
||||
return linkify(raw_text);
|
||||
return linkifyHtml(raw_text);
|
||||
},
|
||||
toggleEditMode(item) {
|
||||
item.editMode = !item.editMode;
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
<template>
|
||||
<div>
|
||||
<!-- todo: rewrite this to send events up instead of two way prop binding -->
|
||||
<!-- eslint-disable vue/no-mutating-props-->
|
||||
<b-table
|
||||
small
|
||||
hover
|
||||
|
||||
@@ -1,57 +0,0 @@
|
||||
const path = require("path");
|
||||
const { getDocSections } = require("./docs/sections");
|
||||
const buildWebpack = require("./webpack.config.js");
|
||||
|
||||
function getWebpack() {
|
||||
const cfg = buildWebpack();
|
||||
|
||||
// looks like our src plays with the webpack publicPath dynamically,
|
||||
// presumably to allow for dyamic loads, but this is a problem when
|
||||
// you're not outputting code to a non-standard location.
|
||||
// allowing this to happen breaks the styleguide.
|
||||
cfg.module.rules.push({
|
||||
test: /onload\/publicPath/,
|
||||
use: { loader: "ignore-loader" },
|
||||
});
|
||||
|
||||
return cfg;
|
||||
}
|
||||
|
||||
// TODO: Fix broken module imports before attempting to view in styleguidef
|
||||
const problemChildren = ["**/HistoryView.vue", "**/admin/DataManager/*", "**/LibraryFolder/*"];
|
||||
if (problemChildren.length) {
|
||||
console.warn("Not rendering styleguide for the following components:", problemChildren);
|
||||
}
|
||||
|
||||
function getSections() {
|
||||
// Style sections
|
||||
const docRootPath = path.join(__dirname, "docs/src");
|
||||
const { rootNode: docRoot } = getDocSections(docRootPath, { docSelector: "*.md" });
|
||||
const [design, styles] = docRoot.sections;
|
||||
delete docRoot.components;
|
||||
|
||||
// recursive component tree docs
|
||||
const cmpPath = path.join(__dirname, "src/components");
|
||||
const { rootNode: componentDocs } = getDocSections(cmpPath, { ignore: problemChildren });
|
||||
|
||||
return [design, styles, componentDocs];
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
webpackConfig: getWebpack(),
|
||||
title: "Galaxy Client Resources",
|
||||
sections: getSections(),
|
||||
getExampleFilename(componentPath) {
|
||||
return componentPath.replace(/\.(vue|js)?$/, ".md");
|
||||
},
|
||||
require: [
|
||||
"./src/style/scss/base.scss",
|
||||
"./src/polyfills.js",
|
||||
// "./src/bundleEntries.js"
|
||||
],
|
||||
tocMode: "collapse",
|
||||
renderRootJsx: "./docs/root",
|
||||
styleguideDir: "./docs/dist",
|
||||
pagePerSection: true,
|
||||
ignore: problemChildren,
|
||||
};
|
||||
@@ -34,6 +34,9 @@ module.exports = (env = {}, argv = {}) => {
|
||||
timers: require.resolve("timers-browserify"),
|
||||
stream: require.resolve("stream-browserify"),
|
||||
"process/browser": require.resolve("process/browser"),
|
||||
querystring: require.resolve("querystring-es3"),
|
||||
util: require.resolve("util/"),
|
||||
assert: require.resolve("assert/"),
|
||||
},
|
||||
alias: {
|
||||
jquery$: `${libsBase}/jquery.custom.js`,
|
||||
@@ -208,7 +211,7 @@ module.exports = (env = {}, argv = {}) => {
|
||||
},
|
||||
},
|
||||
devMiddleware: {
|
||||
publicPath: '/static/dist'
|
||||
publicPath: "/static/dist",
|
||||
},
|
||||
hot: true,
|
||||
port: 8081,
|
||||
@@ -221,7 +224,7 @@ module.exports = (env = {}, argv = {}) => {
|
||||
target: process.env.GALAXY_URL || "http://localhost:8080",
|
||||
secure: process.env.CHANGE_ORIGIN ? !process.env.CHANGE_ORIGIN : true,
|
||||
changeOrigin: !!process.env.CHANGE_ORIGIN,
|
||||
logLevel: 'debug'
|
||||
logLevel: "debug",
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
+2493
-5366
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user