feat(detail view): add detail view (#470)

* feat(detail view): add detail view

* update tests

* fix some complexity issues

* fix a permutator test value

* re-order imports

* re-case readme markdown file names
This commit is contained in:
Jane Chu 2018-05-24 19:59:03 -07:00 коммит произвёл GitHub
Родитель 4b1ed8abf7
Коммит 665b871ce1
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
93 изменённых файлов: 26445 добавлений и 25876 удалений

3
.gitignore поставляемый
Просмотреть файл

@ -71,3 +71,6 @@ www/
#Ignore VSCode
.vscode/
.vs/
# tmp directories
.tmp/

69
build/convert-readme.js Normal file
Просмотреть файл

@ -0,0 +1,69 @@
/**
* Utility for converting README files to .tsx files.
* Usage: node build/convert-readme.js %path%
*/
const path = require("path");
const glob = require("glob");
const fs = require("fs");
const argv = require("yargs").argv;
const MarkdownIt = require("markdown-it");
const srcDir = argv.src || "./src/**/README.md";
/**
* Start and end file strings
*/
const startFile = `// Generated file from ../../build
/* tslint:disable */
import * as React from "react";
export default class Documentation extends React.Component<{}, {}> {
public render(): JSX.Element {
return (
<div style={{padding: "14px"}}>\n `;
const endFile = `\n </div>
);
}
}\n`;
const md = new MarkdownIt({
html: true,
linkify: true,
typographer: true,
xhtmlOut: true
});
/**
* All paths passed to the convert script
*/
const paths = argv._;
/**
* Function to create string exports of a given path
*/
function exportReadme(readmePath) {
const readmePaths = path.resolve(process.cwd(), srcDir);
glob(readmePaths, void(0), function(error, files) {
files.forEach((filePath) => {
let documentation = startFile;
const markdown = fs.readFileSync(filePath, "utf8");
const exportPath = filePath.replace(/README\.md/, readmePath);
documentation += md.render(markdown);
documentation += endFile;
if (!fs.existsSync(exportPath)){
fs.mkdirSync(exportPath);
}
fs.writeFileSync(path.resolve(exportPath, "documentation.tsx"), documentation);
});
});
}
/**
* Convert all paths
*/
if (Array.isArray(paths)) {
paths.forEach(exportReadme);
}

30
build/copy-readme.js Normal file
Просмотреть файл

@ -0,0 +1,30 @@
/**
* Utility for copying readme to their dist folders.
* Usage: node build/copy-readme.js
*/
const path = require("path");
const fs = require("fs");
const glob = require("glob");
const rootDir = path.resolve(process.cwd());
const srcReadmePaths = "src/**/README.md";
const destDir = "dist";
/**
* Function to copy readme files to their dist folder
*/
function copyReadmeFiles() {
const resolvedSrcReadmePaths = path.resolve(rootDir, srcReadmePaths);
glob(resolvedSrcReadmePaths, void(0), function(error, files) {
files.forEach((filePath) => {
const destReadmePath = filePath.replace(/(\bsrc\b)(?!.*\1)/, destDir);
fs.copyFileSync(filePath, destReadmePath);
});
});
}
/**
* Copy all files
*/
copyReadmeFiles();

1091
package-lock.json сгенерированный

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Просмотреть файл

@ -20,6 +20,7 @@
"@types/node": "^9.4.7",
"glob": "^7.1.2",
"lerna": "^2.9.0",
"markdown-it": "^8.4.1",
"rimraf": "^2.6.2",
"ts-node": "^5.0.1",
"typescript": "^2.7.2",

4464
packages/fast-animation/package-lock.json сгенерированный

Разница между файлами не показана из-за своего большого размера Загрузить разницу

3288
packages/fast-browser-extensions/package-lock.json сгенерированный

Разница между файлами не показана из-за своего большого размера Загрузить разницу

2210
packages/fast-colors/package-lock.json сгенерированный

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Просмотреть файл

@ -17,7 +17,7 @@
"resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
"integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
"requires": {
"sprintf-js": "~1.0.2"
"sprintf-js": "1.0.3"
}
},
"babel-code-frame": {
@ -25,9 +25,9 @@
"resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz",
"integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=",
"requires": {
"chalk": "^1.1.3",
"esutils": "^2.0.2",
"js-tokens": "^3.0.2"
"chalk": "1.1.3",
"esutils": "2.0.2",
"js-tokens": "3.0.2"
},
"dependencies": {
"chalk": {
@ -35,11 +35,11 @@
"resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
"integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
"requires": {
"ansi-styles": "^2.2.1",
"escape-string-regexp": "^1.0.2",
"has-ansi": "^2.0.0",
"strip-ansi": "^3.0.0",
"supports-color": "^2.0.0"
"ansi-styles": "2.2.1",
"escape-string-regexp": "1.0.5",
"has-ansi": "2.0.0",
"strip-ansi": "3.0.1",
"supports-color": "2.0.0"
}
}
}
@ -54,7 +54,7 @@
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
"requires": {
"balanced-match": "^1.0.0",
"balanced-match": "1.0.0",
"concat-map": "0.0.1"
}
},
@ -68,9 +68,9 @@
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz",
"integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==",
"requires": {
"ansi-styles": "^3.2.1",
"escape-string-regexp": "^1.0.5",
"supports-color": "^5.3.0"
"ansi-styles": "3.2.1",
"escape-string-regexp": "1.0.5",
"supports-color": "5.4.0"
},
"dependencies": {
"ansi-styles": {
@ -78,7 +78,7 @@
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
"integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
"requires": {
"color-convert": "^1.9.0"
"color-convert": "1.9.1"
}
},
"supports-color": {
@ -86,7 +86,7 @@
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz",
"integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==",
"requires": {
"has-flag": "^3.0.0"
"has-flag": "3.0.0"
}
}
}
@ -96,7 +96,7 @@
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.1.tgz",
"integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==",
"requires": {
"color-name": "^1.1.1"
"color-name": "1.1.3"
}
},
"color-name": {
@ -144,12 +144,12 @@
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz",
"integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==",
"requires": {
"fs.realpath": "^1.0.0",
"inflight": "^1.0.4",
"inherits": "2",
"minimatch": "^3.0.4",
"once": "^1.3.0",
"path-is-absolute": "^1.0.0"
"fs.realpath": "1.0.0",
"inflight": "1.0.6",
"inherits": "2.0.3",
"minimatch": "3.0.4",
"once": "1.4.0",
"path-is-absolute": "1.0.1"
}
},
"has-ansi": {
@ -157,7 +157,7 @@
"resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
"integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
"requires": {
"ansi-regex": "^2.0.0"
"ansi-regex": "2.1.1"
}
},
"has-flag": {
@ -170,8 +170,8 @@
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
"integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
"requires": {
"once": "^1.3.0",
"wrappy": "1"
"once": "1.4.0",
"wrappy": "1.0.2"
}
},
"inherits": {
@ -189,8 +189,8 @@
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.11.0.tgz",
"integrity": "sha512-saJstZWv7oNeOyBh3+Dx1qWzhW0+e6/8eDzo7p5rDFqxntSztloLtuKu+Ejhtq82jsilwOIZYsCz+lIjthg1Hw==",
"requires": {
"argparse": "^1.0.7",
"esprima": "^4.0.0"
"argparse": "1.0.10",
"esprima": "4.0.0"
}
},
"minimatch": {
@ -198,7 +198,7 @@
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
"integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
"requires": {
"brace-expansion": "^1.1.7"
"brace-expansion": "1.1.11"
}
},
"once": {
@ -206,7 +206,7 @@
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
"integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
"requires": {
"wrappy": "1"
"wrappy": "1.0.2"
}
},
"path-is-absolute": {
@ -224,7 +224,7 @@
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.7.1.tgz",
"integrity": "sha512-c7rwLofp8g1U+h1KNyHL/jicrKg1Ek4q+Lr33AL65uZTinUZHe30D5HlyN5V9NW0JX1D5dXQ4jqW5l7Sy/kGfw==",
"requires": {
"path-parse": "^1.0.5"
"path-parse": "1.0.5"
}
},
"semver": {
@ -242,7 +242,7 @@
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
"integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
"requires": {
"ansi-regex": "^2.0.0"
"ansi-regex": "2.1.1"
}
},
"supports-color": {
@ -260,18 +260,18 @@
"resolved": "https://registry.npmjs.org/tslint/-/tslint-5.10.0.tgz",
"integrity": "sha1-EeJrzLiK+gLdDZlWyuPUVAtfVMM=",
"requires": {
"babel-code-frame": "^6.22.0",
"builtin-modules": "^1.1.1",
"chalk": "^2.3.0",
"commander": "^2.12.1",
"diff": "^3.2.0",
"glob": "^7.1.1",
"js-yaml": "^3.7.0",
"minimatch": "^3.0.4",
"resolve": "^1.3.2",
"semver": "^5.3.0",
"tslib": "^1.8.0",
"tsutils": "^2.12.1"
"babel-code-frame": "6.26.0",
"builtin-modules": "1.1.1",
"chalk": "2.4.1",
"commander": "2.15.1",
"diff": "3.5.0",
"glob": "7.1.2",
"js-yaml": "3.11.0",
"minimatch": "3.0.4",
"resolve": "1.7.1",
"semver": "5.5.0",
"tslib": "1.9.1",
"tsutils": "2.27.0"
}
},
"tsutils": {
@ -279,7 +279,7 @@
"resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.27.0.tgz",
"integrity": "sha512-JcyX25oM9pFcb3zh60OqG1St8p/uSqC5Bgipdo3ieacB/Ao4dPhm7hAtKT9NrEu23CyYrrgJPV3CqYfo+/+T4w==",
"requires": {
"tslib": "^1.8.1"
"tslib": "1.9.1"
}
},
"typescript": {

Просмотреть файл

@ -17,7 +17,7 @@
"resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
"integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
"requires": {
"sprintf-js": "~1.0.2"
"sprintf-js": "1.0.3"
}
},
"babel-code-frame": {
@ -25,9 +25,9 @@
"resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz",
"integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=",
"requires": {
"chalk": "^1.1.3",
"esutils": "^2.0.2",
"js-tokens": "^3.0.2"
"chalk": "1.1.3",
"esutils": "2.0.2",
"js-tokens": "3.0.2"
},
"dependencies": {
"chalk": {
@ -35,11 +35,11 @@
"resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
"integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
"requires": {
"ansi-styles": "^2.2.1",
"escape-string-regexp": "^1.0.2",
"has-ansi": "^2.0.0",
"strip-ansi": "^3.0.0",
"supports-color": "^2.0.0"
"ansi-styles": "2.2.1",
"escape-string-regexp": "1.0.5",
"has-ansi": "2.0.0",
"strip-ansi": "3.0.1",
"supports-color": "2.0.0"
}
}
}
@ -54,7 +54,7 @@
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
"requires": {
"balanced-match": "^1.0.0",
"balanced-match": "1.0.0",
"concat-map": "0.0.1"
}
},
@ -68,9 +68,9 @@
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz",
"integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==",
"requires": {
"ansi-styles": "^3.2.1",
"escape-string-regexp": "^1.0.5",
"supports-color": "^5.3.0"
"ansi-styles": "3.2.1",
"escape-string-regexp": "1.0.5",
"supports-color": "5.4.0"
},
"dependencies": {
"ansi-styles": {
@ -78,7 +78,7 @@
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
"integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
"requires": {
"color-convert": "^1.9.0"
"color-convert": "1.9.1"
}
},
"supports-color": {
@ -86,7 +86,7 @@
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz",
"integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==",
"requires": {
"has-flag": "^3.0.0"
"has-flag": "3.0.0"
}
}
}
@ -96,7 +96,7 @@
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.1.tgz",
"integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==",
"requires": {
"color-name": "^1.1.1"
"color-name": "1.1.3"
}
},
"color-name": {
@ -144,12 +144,12 @@
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz",
"integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==",
"requires": {
"fs.realpath": "^1.0.0",
"inflight": "^1.0.4",
"inherits": "2",
"minimatch": "^3.0.4",
"once": "^1.3.0",
"path-is-absolute": "^1.0.0"
"fs.realpath": "1.0.0",
"inflight": "1.0.6",
"inherits": "2.0.3",
"minimatch": "3.0.4",
"once": "1.4.0",
"path-is-absolute": "1.0.1"
}
},
"has-ansi": {
@ -157,7 +157,7 @@
"resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
"integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
"requires": {
"ansi-regex": "^2.0.0"
"ansi-regex": "2.1.1"
}
},
"has-flag": {
@ -170,8 +170,8 @@
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
"integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
"requires": {
"once": "^1.3.0",
"wrappy": "1"
"once": "1.4.0",
"wrappy": "1.0.2"
}
},
"inherits": {
@ -189,8 +189,8 @@
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.11.0.tgz",
"integrity": "sha512-saJstZWv7oNeOyBh3+Dx1qWzhW0+e6/8eDzo7p5rDFqxntSztloLtuKu+Ejhtq82jsilwOIZYsCz+lIjthg1Hw==",
"requires": {
"argparse": "^1.0.7",
"esprima": "^4.0.0"
"argparse": "1.0.10",
"esprima": "4.0.0"
}
},
"minimatch": {
@ -198,7 +198,7 @@
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
"integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
"requires": {
"brace-expansion": "^1.1.7"
"brace-expansion": "1.1.11"
}
},
"once": {
@ -206,7 +206,7 @@
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
"integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
"requires": {
"wrappy": "1"
"wrappy": "1.0.2"
}
},
"path-is-absolute": {
@ -224,7 +224,7 @@
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.7.1.tgz",
"integrity": "sha512-c7rwLofp8g1U+h1KNyHL/jicrKg1Ek4q+Lr33AL65uZTinUZHe30D5HlyN5V9NW0JX1D5dXQ4jqW5l7Sy/kGfw==",
"requires": {
"path-parse": "^1.0.5"
"path-parse": "1.0.5"
}
},
"semver": {
@ -242,7 +242,7 @@
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
"integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
"requires": {
"ansi-regex": "^2.0.0"
"ansi-regex": "2.1.1"
}
},
"supports-color": {
@ -260,18 +260,18 @@
"resolved": "https://registry.npmjs.org/tslint/-/tslint-5.10.0.tgz",
"integrity": "sha1-EeJrzLiK+gLdDZlWyuPUVAtfVMM=",
"requires": {
"babel-code-frame": "^6.22.0",
"builtin-modules": "^1.1.1",
"chalk": "^2.3.0",
"commander": "^2.12.1",
"diff": "^3.2.0",
"glob": "^7.1.1",
"js-yaml": "^3.7.0",
"minimatch": "^3.0.4",
"resolve": "^1.3.2",
"semver": "^5.3.0",
"tslib": "^1.8.0",
"tsutils": "^2.12.1"
"babel-code-frame": "6.26.0",
"builtin-modules": "1.1.1",
"chalk": "2.4.1",
"commander": "2.15.1",
"diff": "3.5.0",
"glob": "7.1.2",
"js-yaml": "3.11.0",
"minimatch": "3.0.4",
"resolve": "1.7.1",
"semver": "5.5.0",
"tslib": "1.9.1",
"tsutils": "2.27.0"
}
},
"tsutils": {
@ -279,7 +279,7 @@
"resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.27.0.tgz",
"integrity": "sha512-JcyX25oM9pFcb3zh60OqG1St8p/uSqC5Bgipdo3ieacB/Ao4dPhm7hAtKT9NrEu23CyYrrgJPV3CqYfo+/+T4w==",
"requires": {
"tslib": "^1.8.1"
"tslib": "1.9.1"
}
},
"typescript": {

Просмотреть файл

@ -23,7 +23,7 @@ const formChildOptions: IFormChildOption[] = formChildFromExamplesFactory(exampl
/* tslint:disable */
function render(): void {
ReactDOM.render(
<Site title={"FAST components base"} formChildOptions={formChildOptions}>
<Site title={"FAST base component documentation"} formChildOptions={formChildOptions}>
<SiteCategory slot={"category"} name={"Components"}>
{componentFactory(examples)}
</SiteCategory>

5071
packages/fast-components-react-base/package-lock.json сгенерированный

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Просмотреть файл

@ -14,11 +14,14 @@
"types": "dist/index.d.ts",
"scripts": {
"clean:dist": "node ../../build/clean.js dist",
"convert:readme": "node ../../build/convert-readme.js .tmp",
"copy:all": "npm run copy:json-schema && npm run copy:readme",
"copy:json-schema": "node ../../build/copy-schemas.js",
"copy:readme": "node ../../build/copy-readme.js",
"build:app": "webpack --progress",
"prepare": "npm run clean:dist && tsc -p ./tsconfig.json && npm run copy:json-schema",
"prepare": "npm run clean:dist && tsc -p ./tsconfig.json && npm run copy:all",
"start": "webpack-dev-server",
"test": "npm run tslint && npm run unit-tests && npm run build:app",
"test": "npm run convert:readme && npm run tslint && npm run unit-tests && npm run build:app",
"tslint": "tslint -c ./tslint.json 'src/**/*.ts{,x}' '**/*.ts{,x}'",
"tslint:fix": "tslint -c ./tslint.json --fix 'src/**/*.ts{,x}' '**/*.ts{,x}'",
"unit-tests": "jest --maxWorkers=4",
@ -72,6 +75,7 @@
"webpack": "^4.1.0",
"webpack-cli": "^2.0.11",
"webpack-dev-server": "^3.1.0",
"webpack-shell-plugin": "^0.5.0",
"yargs": "^11.0.0"
},
"peerDependencies": {

Просмотреть файл

@ -0,0 +1,2 @@
## Guidance
The *Button* component can be either an [anchor](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a) or [button](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button) element but will appear with button styling.

Просмотреть файл

@ -1,13 +1,21 @@
import * as React from "react";
import { ISnapshotTestSuite } from "@microsoft/fast-jest-snapshots-react";
import { IManagedClasses } from "@microsoft/fast-components-class-name-contracts-base";
import Button, { IButtonHandledProps, IButtonManagedClasses, IButtonUnhandledProps } from "./button";
import * as schema from "./button.schema.json";
import * as React from "react";
import Documentation from "./.tmp/documentation";
const examples: ISnapshotTestSuite<IButtonHandledProps & IButtonManagedClasses> = {
name: "button",
component: Button,
schema: schema as any,
documentation: <Documentation />,
detailData: {
managedClasses: {
button: "button"
},
children: "Button"
},
data: [
{
managedClasses: {

Просмотреть файл

@ -1,12 +1,2 @@
# Implementation
## Implementation example
```javascript
<Checkbox
id='id01'
name='checkbox1'
value='checkboxExampleValue1'
text='Checkbox label'
checked={false}
/>
```
## Guidance
The *Checkbox* component can be a [checkbox](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a).

Просмотреть файл

@ -1,8 +1,9 @@
import * as React from "react";
import { ISnapshotTestSuite } from "@microsoft/fast-jest-snapshots-react";
import { IManagedClasses } from "@microsoft/fast-components-class-name-contracts-base";
import Checkbox, { CheckboxHTMLTags, ICheckboxHandledProps, ICheckboxManagedClasses, ICheckboxUnhandledProps } from "./checkbox";
import * as schema from "./checkbox.schema.json";
import * as React from "react";
import Documentation from "./.tmp/documentation";
const classes: ICheckboxManagedClasses = {
managedClasses: {
@ -18,6 +19,11 @@ const examples: ISnapshotTestSuite<ICheckboxHandledProps & ICheckboxManagedClass
name: "checkbox",
component: Checkbox,
schema: schema as any,
documentation: <Documentation />,
detailData: {
...classes,
checked: true
},
data: [
{
...classes

Просмотреть файл

@ -0,0 +1,2 @@
## Guidance
The *Divider* component can be an [hr](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/hr) element.

Просмотреть файл

@ -1,13 +1,20 @@
import * as React from "react";
import { ISnapshotTestSuite } from "@microsoft/fast-jest-snapshots-react";
import { IManagedClasses } from "@microsoft/fast-components-class-name-contracts-base";
import Divider, { IDividerHandledProps, IDividerManagedClasses, IDividerUnhandledProps } from "./divider";
import * as schema from "./divider.schema.json";
import * as React from "react";
import Documentation from "./.tmp/documentation";
const examples: ISnapshotTestSuite<IDividerHandledProps & IDividerManagedClasses> = {
name: "divider",
component: Divider,
schema: schema as any,
documentation: <Documentation />,
detailData: {
managedClasses: {
divider: "divider"
}
},
data: [
{
managedClasses: {

Просмотреть файл

Просмотреть файл

@ -1,13 +1,22 @@
import * as React from "react";
import { ISnapshotTestSuite } from "@microsoft/fast-jest-snapshots-react";
import { IManagedClasses } from "@microsoft/fast-components-class-name-contracts-base";
import Hypertext, { IHypertextHandledProps, IHypertextManagedClasses, IHypertextUnhandledProps } from "./hypertext";
import * as schema from "./hypertext.schema.json";
import * as React from "react";
import Documentation from "./.tmp/documentation";
const examples: ISnapshotTestSuite<IHypertextHandledProps & IHypertextManagedClasses> = {
name: "hypertext",
component: Hypertext,
schema: schema as any,
documentation: <Documentation />,
detailData: {
managedClasses: {
hypertext: "hypertext"
},
href: "https://www.microsoft.com/en-us/",
children: "Microsoft"
},
data: [
{
managedClasses: {

Просмотреть файл

@ -1,31 +1,8 @@
# Implementation
## Best practices
Use *image* to break up text-heavy pages, to illustrate products for sale, or to improve storytelling on a page. The use of *image* should always support the pages story and, when possible, contribute to that story. Size the *image* to complement the rest of the page content. Use the **picture** option to employ a selection of image versions for different viewport sizes.
## Implementation example
```javascript
### Style guidance
Don't use *image* as a substitute for *hero*, *feature*, or *product* and *content placements*. Don't use an image if it reduces the effectiveness of the page.
<!-- Returns <img />-->
<Image
src='https://placehold.it/539x300/2F2F2F/171717'
alt='Placeholder with grey background and dimension watermark without any imagery'
/>
<!-- Returns <img /> using SrcSet-->
<Image
src='https://placehold.it/539x300/2F2F2F/171717'
srcSet='https://placehold.it/1399x600/2F2F2F/171717 1399w, https://placehold.it/1083x500/2F2F2F/171717 1083w, https://placehold.it/767x400/2F2F2F/171717 767w'
sizes='100vw'
alt='Placeholder with grey background and dimension watermark without any imagery'
/>
<!-- Returns <picture />-->
<Image
vp6='https://placehold.it/2048x600/2F2F2F/171717'
vp5='https://placehold.it/1778x600/2F2F2F/171717'
vp4='https://placehold.it/1399x600/2F2F2F/171717'
vp3='https://placehold.it/1083x500/2F2F2F/171717'
vp2='https://placehold.it/767x400/2F2F2F/171717'
vp1='https://placehold.it/539x300/2F2F2F/171717'
alt='Placeholder with grey background and dimension watermark without any imagery'
/>
```
## Accessibility
An image must **always** have an `alt` attribute. Not only does it give the image meaning for non-sighted users, but if the image fails to load, the `alt` text will be displayed instead. Always use descriptive `alt` text that concisely describes what the *image* conveys. Make sure you are communicating what the *image* is telling you visually. If the *image* is purely for visual decoration and does not convey any meaningful information, such as an icon to reinforce adjacent text, then you should set the `alt` attribute to an empty string: `alt=""`. *Images* with complex content (e.g. charts and graphs) may need an additional description for non-sighted users. For example, provide a link to a text description or describe the *image* in detail on the page itself.

Просмотреть файл

@ -5,4 +5,4 @@ Use *image* to break up text-heavy pages, to illustrate products for sale, or to
Don't use *image* as a substitute for *hero*, *feature*, or *product* and *content placements*. Don't use an image if it reduces the effectiveness of the page.
## Accessibility
An image must **always** have an `alt` attribute. Not only does it give the image meaning for non-sighted users, but if the image fails to load, the `alt` text will be displayed instead. Always use descriptive `alt` text that concisely describes what the *image* conveys. Make sure you are communicating what the *image* is telling you visually. If the *image* is purely for visual decoration and does not convey any meaningful information, such as an icon to reinforce adjacent text, then you should set the `alt` attribute to an empty string: `alt=""`. *Images* with complex content (e.g. charts and graphs) may need an additional description for non-sighted users. For example, provide a link to a text description or describe the *image* in detail on the page itself.
An image must **always** have an `alt` attribute. Not only does it give the image meaning for non-sighted users, but if the image fails to load, the `alt` text will be displayed instead. Always use descriptive `alt` text that concisely describes what the *image* conveys. Make sure you are communicating what the *image* is telling you visually. If the *image* is purely for visual decoration and does not convey any meaningful information, such as an icon to reinforce adjacent text, then you should set the `alt` attribute to an empty string: `alt=""`. *Images* with complex content (e.g. charts and graphs) may need an additional description for non-sighted users. For example, provide a link to a text description or describe the *image* in detail on the page itself.

Просмотреть файл

@ -1,12 +1,24 @@
import * as React from "react";
import { ISnapshotTestSuite } from "@microsoft/fast-jest-snapshots-react";
import { IManagedClasses } from "@microsoft/fast-components-class-name-contracts-base";
import Image, { IImageHandledProps, IImageMangedClasses, IImageUnhandledProps } from "./image";
import * as schema from "./image.schema.json";
import Documentation from "./.tmp/documentation";
const examples: ISnapshotTestSuite<IImageHandledProps & IImageMangedClasses> = {
name: "image",
component: Image,
schema: schema as any,
documentation: <Documentation />,
detailData: {
managedClasses: {
picture: "picture",
image: "image",
image_round: "image-round"
},
vp1: "https://placehold.it/539x300/2F2F2F/171717",
alt: "Placeholder with grey background and dimension watermark without any imagery"
},
data: [
{
managedClasses: {

Просмотреть файл

@ -1,6 +1,16 @@
# Implementation
# Introduction
*Label* is a replacement for the HTML `label` or `legend` element. It can be used alone or grouped with other related components. Some components have the *label* built-in, but most do not. *Labels* cannot exceed one line of text.
## Implementation example
```javascript
<Label tag={'label'} children={'Label'} />
```
## Best practices
Use *label* to inform the user of information about one or more visually co-located components. For example, use *label* to tell the user what they should enter into an adjacent input component, or to group a set of related components. It is possible use *label* to display instructional text near a group of related components, but there are better choices such as caption or paragraph.
### Usage guidance
Use sentence case (e.g. "Last name"), but avoid punctuation such as colons. *Label* text should be short and succinct, not a full sentence. When labeling components, write the *label* text as a noun or a concise noun phrase, without using full sentences. Using commas to separate list items is an exception to this rule.
### Behavioral guidance
When instructional text is needed near a group of controls, consider using caption instead. *Labels* are only intended for identification purposes, not as instructional text.
## Accessibility
Input elements inside a `form` must be associated with corresponding `label` elements, either by using *label* as a wrapper element for the form input, or by associating the `for` attribute of the *label* with the input elements `id` attribute.
A meaningful `label` is still required on input elements with implicit labels (e.g. a search input flagged by a background “search” icon). In these cases, the `hidden` option should be passed as `true`.

Просмотреть файл

@ -1,4 +1,4 @@
#Introduction
# Introduction
*Label* is a replacement for the HTML `label` or `legend` element. It can be used alone or grouped with other related components. Some components have the *label* built-in, but most do not. *Labels* cannot exceed one line of text.
## Best practices

Просмотреть файл

@ -1,3 +1,4 @@
import * as React from "react";
import { ISnapshotTestSuite } from "@microsoft/fast-jest-snapshots-react";
import { IManagedClasses } from "@microsoft/fast-components-class-name-contracts-base";
import Label, {
@ -7,11 +8,21 @@ import Label, {
LabelTag
} from "./label";
import * as schema from "./label.schema.json";
import Documentation from "./.tmp/documentation";
const examples: ISnapshotTestSuite<ILabelHandledProps & ILabelMangedClasses> = {
name: "label",
component: Label,
schema: schema as any,
documentation: <Documentation />,
detailData: {
managedClasses: {
label: "label",
label_hidden: "hidden_label"
},
tag: LabelTag.label,
children: "Label"
},
data: [
{
managedClasses: {

Просмотреть файл

@ -1,13 +1,30 @@
import * as React from "react";
import { ISnapshotTestSuite } from "@microsoft/fast-jest-snapshots-react";
import { IManagedClasses } from "@microsoft/fast-components-class-name-contracts-base";
import Toggle, { IToggleHandledProps, IToggleManagedClasses, IToggleUnhandledProps } from "./toggle";
import * as schema from "./toggle.schema.json";
import * as React from "react";
import Documentation from "./.tmp/documentation";
const examples: ISnapshotTestSuite<IToggleHandledProps & IToggleManagedClasses> = {
name: "toggle",
component: Toggle,
schema: schema as any,
documentation: <Documentation />,
detailData: {
managedClasses: {
toggle: "toggle",
toggle_label: "toggle_label",
toggle_wrapper: "toggle_wrapper",
toggle_input: "toggle_input",
toggle_button: "toggle_button",
},
children: "Toggle",
id: "toggle01",
labelId: "label01",
selectedString: "On",
statusLabelId: "span01",
unselectedString: "Off"
},
data: [
{
managedClasses: {

Просмотреть файл

@ -0,0 +1,2 @@
## Guidance
This component uses a type ramp and can be used to create a number of inline typographic elements.

Просмотреть файл

@ -1,3 +1,4 @@
import * as React from "react";
import { ISnapshotTestSuite } from "@microsoft/fast-jest-snapshots-react";
import { IManagedClasses } from "@microsoft/fast-components-class-name-contracts-base";
import Typography, {
@ -8,7 +9,7 @@ import Typography, {
TypographyTag
} from "./typography";
import * as schema from "./typography.schema.json";
import * as React from "react";
import Documentation from "./.tmp/documentation";
const testString: string = "Test string";
const managedClassExamples: any = {
@ -27,6 +28,13 @@ const examples: ISnapshotTestSuite<ITypographyHandledProps & ITypographyManagedC
name: "typography",
component: Typography,
schema: schema as any,
documentation: <Documentation />,
detailData: {
managedClasses: managedClassExamples,
tag: TypographyTag.h1,
typeLevel: TypeLevel._1,
children: "Typography"
},
data: [
{
managedClasses: managedClassExamples,

Просмотреть файл

@ -18,6 +18,6 @@
"node_modules",
"**/*.spec.ts",
"**/*.spec.tsx",
"**/examples.data.ts"
"**/examples.data.tsx"
]
}

Просмотреть файл

@ -1,5 +1,6 @@
const path = require("path");
const HtmlWebpackPlugin = require("html-webpack-plugin");
const WebpackShellPlugin = require("webpack-shell-plugin");
const appDir = path.resolve(__dirname, "./app");
const outDir = path.resolve(__dirname, "./www");
@ -31,6 +32,11 @@ module.exports = {
plugins: [
new HtmlWebpackPlugin({
contentBase: outDir,
}),
new WebpackShellPlugin({
onBuildStart: [
`npm run convert:readme`
]
})
],
devServer: {

Просмотреть файл

@ -28,7 +28,7 @@ function render(): void {
ReactDOM.render(
<div>
<DesignSystemProvider designSystem={DesignSystemDefaults}>
<Site title={"FAST Microsoft components"} formChildOptions={formChildOptions}>
<Site title={"FAST Microsoft component documentation"} formChildOptions={formChildOptions}>
<SiteCategory slot={"category"} name={"Building blocks"}>
<SiteCategoryIcon slot="category-icon">
<div dangerouslySetInnerHTML={{__html: glyphBuildingblocks}} />

4865
packages/fast-components-react-msft/package-lock.json сгенерированный

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Просмотреть файл

@ -16,11 +16,14 @@
"types": "dist/index.d.ts",
"scripts": {
"clean:dist": "node ../../build/clean.js dist",
"convert:readme": "node ../../build/convert-readme.js .tmp",
"copy:all": "npm run copy:json-schema && npm run copy:readme",
"copy:json-schema": "node ../../build/copy-schemas.js",
"copy:readme": "node ../../build/copy-readme.js",
"build:app": "webpack --progress",
"prepare": "npm run clean:dist && tsc -p ./tsconfig.json && npm run copy:json-schema",
"prepare": "npm run clean:dist && tsc -p ./tsconfig.json && npm run copy:all",
"start": "webpack-dev-server",
"test": "npm run tslint && npm run unit-tests && npm run build:app",
"test": "npm run convert:readme && npm run tslint && npm run unit-tests && npm run build:app",
"tslint": "tslint -c ./tslint.json '**/*.ts{,x}'",
"tslint:fix": "tslint -c ./tslint.json --fix '**/*.ts{,x}'",
"unit-tests": "jest --maxWorkers=4",
@ -78,6 +81,7 @@
"webpack": "^4.1.0",
"webpack-cli": "^2.0.11",
"webpack-dev-server": "^3.1.0",
"webpack-shell-plugin": "^0.5.0",
"yargs": "^11.0.0"
},
"peerDependencies": {

Просмотреть файл

@ -0,0 +1,2 @@
## Guidance
This component uses the [button](https://github.com/Microsoft/fast-dna/tree/master/packages/fast-components-react-base/src/button) base component.

Просмотреть файл

@ -10,11 +10,16 @@ import {
IButtonUnhandledProps
} from "./button.props";
import * as schema from "./button.schema.json";
import Documentation from "./.tmp/documentation";
export default {
name: "button",
component: Button,
schema: schema as any,
documentation: <Documentation />,
detailData: {
children: "Button"
},
data: [
{
children: "Default button"

Просмотреть файл

@ -0,0 +1,2 @@
## Guidance
This component uses the [checkbox](https://github.com/Microsoft/fast-dna/tree/master/packages/fast-components-react-base/src/checkbox) base component.

Просмотреть файл

@ -1,13 +1,19 @@
import * as React from "react";
import { ISnapshotTestSuite } from "@microsoft/fast-jest-snapshots-react";
import { IManagedClasses } from "@microsoft/fast-jss-manager-react";
import Checkbox from "./index";
import { ICheckboxHandledProps } from "@microsoft/fast-components-react-base";
import * as schema from "@microsoft/fast-components-react-base/dist/checkbox/checkbox.schema.json";
import Documentation from "./.tmp/documentation";
export default {
name: "checkbox",
component: Checkbox,
schema: schema as any,
documentation: <Documentation />,
detailData: {
text: "Checkbox"
},
data: [
{
text: "Default"

Просмотреть файл

@ -0,0 +1,2 @@
## Guidance
This component uses the [divider](https://github.com/Microsoft/fast-dna/tree/master/packages/fast-components-react-base/src/divider) base component.

Просмотреть файл

@ -1,13 +1,19 @@
import * as React from "react";
import { ISnapshotTestSuite } from "@microsoft/fast-jest-snapshots-react";
import { IManagedClasses } from "@microsoft/fast-jss-manager-react";
import Divider from "./index";
import { DividerRoles, IDividerHandledProps } from "@microsoft/fast-components-react-base";
import * as schema from "@microsoft/fast-components-react-base/dist/divider/divider.schema.json";
import Documentation from "./.tmp/documentation";
export default {
name: "divider",
component: Divider,
schema: schema as any,
documentation: <Documentation />,
detailData: {
role: void 0
},
data: [
{
role: void 0

Просмотреть файл

@ -0,0 +1,2 @@
## Guidance
This component uses the [typography](https://github.com/Microsoft/fast-dna/tree/master/packages/fast-components-react-base/src/typography) base component.

Просмотреть файл

@ -12,6 +12,7 @@ import {
IHeadingUnhandledProps
} from "./heading.props";
import * as schema from "./heading.schema.json";
import Documentation from "./.tmp/documentation";
const testString: string = "Heading test string";
@ -19,6 +20,10 @@ export default {
name: "heading",
component: Heading,
schema: schema as any,
documentation: <Documentation />,
detailData: {
children: "Heading"
},
data: [
{
children: testString

Просмотреть файл

@ -0,0 +1,2 @@
## Guidance
This component uses the [hypertext](https://github.com/Microsoft/fast-dna/tree/master/packages/fast-components-react-base/src/hypertext) base component.

Просмотреть файл

@ -1,14 +1,20 @@
import * as React from "react";
import { ISnapshotTestSuite } from "@microsoft/fast-jest-snapshots-react";
import { IManagedClasses } from "@microsoft/fast-jss-manager-react";
import Hypertext from "./index";
import { IHypertextHandledProps } from "@microsoft/fast-components-react-base";
import * as schema from "@microsoft/fast-components-react-base/dist/hypertext/hypertext.schema.json";
import * as React from "react";
import Documentation from "./.tmp/documentation";
export default {
name: "hypertext",
component: Hypertext,
schema: schema as any,
documentation: <Documentation />,
detailData: {
href: "https://www.microsoft.com/en-us/",
children: "Microsoft"
},
data: [
{
href: "https://msdn.microsoft.com",

Просмотреть файл

@ -0,0 +1,2 @@
## Guidance
This component uses the [image](https://github.com/Microsoft/fast-dna/tree/master/packages/fast-components-react-base/src/image) base component.

Просмотреть файл

@ -1,13 +1,21 @@
import * as React from "react";
import { ISnapshotTestSuite } from "@microsoft/fast-jest-snapshots-react";
import { IManagedClasses } from "@microsoft/fast-jss-manager-react";
import Image from "./index";
import { IImageHandledProps } from "@microsoft/fast-components-react-base";
import * as schema from "@microsoft/fast-components-react-base/dist/image/image.schema.json";
import Documentation from "./.tmp/documentation";
export default {
name: "image",
component: Image,
schema: schema as any,
documentation: <Documentation />,
detailData: {
round: true,
vp1: "https://placehold.it/300x300/3E3E3E/171717",
alt: "Placeholder with grey background and dimension watermark without any imagery"
},
data: [
{
round: true,

Просмотреть файл

@ -0,0 +1,2 @@
## Guidance
This component uses the [label](https://github.com/Microsoft/fast-dna/tree/master/packages/fast-components-react-base/src/label) base component.

Просмотреть файл

@ -1,14 +1,20 @@
import * as React from "react";
import { ISnapshotTestSuite } from "@microsoft/fast-jest-snapshots-react";
import { IManagedClasses } from "@microsoft/fast-jss-manager-react";
import Label from "./index";
import { ILabelHandledProps, LabelTag } from "@microsoft/fast-components-react-base";
import * as schema from "@microsoft/fast-components-react-base/dist/label/label.schema.json";
import * as React from "react";
import Documentation from "./.tmp/documentation";
export default {
name: "label",
component: Label,
schema: schema as any,
documentation: <Documentation />,
detailData: {
tag: LabelTag.label,
children: "Label"
},
data: [
{
tag: LabelTag.label,

Просмотреть файл

@ -0,0 +1,2 @@
## Guidance
This component uses the [toggle](https://github.com/Microsoft/fast-dna/tree/master/packages/fast-components-react-base/src/toggle) base component.

Просмотреть файл

@ -1,13 +1,24 @@
import * as React from "react";
import { ISnapshotTestSuite } from "@microsoft/fast-jest-snapshots-react";
import { IManagedClasses } from "@microsoft/fast-jss-manager-react";
import Toggle from "./index";
import { IToggleHandledProps } from "@microsoft/fast-components-react-base";
import * as schema from "@microsoft/fast-components-react-base/dist/toggle/toggle.schema.json";
import Documentation from "./.tmp/documentation";
export default {
name: "toggle",
component: Toggle,
schema: schema as any,
documentation: <Documentation />,
detailData: {
children: "Toggle label (default on)",
id: "toggle01",
labelId: "label01",
selectedString: "On",
statusLabelId: "span01",
unselectedString: "Off"
},
data: [
{
children: "Toggle label (default on)",

Просмотреть файл

@ -0,0 +1,2 @@
## Guidance
This component uses the [typography](https://github.com/Microsoft/fast-dna/tree/master/packages/fast-components-react-base/src/typography) base component.

Просмотреть файл

@ -1,8 +1,10 @@
import * as React from "react";
import { ISnapshotTestSuite } from "@microsoft/fast-jest-snapshots-react";
import { IManagedClasses } from "@microsoft/fast-jss-manager-react";
import Typography from "./index";
import { ITypographyHandledProps, ITypographyManagedClasses, TypeLevel, TypographyTag } from "@microsoft/fast-components-react-base";
import * as schema from "@microsoft/fast-components-react-base/dist/typography/typography.schema.json";
import Documentation from "./.tmp/documentation";
const testString: string = "Typography example string";
@ -10,6 +12,10 @@ export default {
name: "typography",
component: Typography,
schema: schema as any,
documentation: <Documentation />,
detailData: {
children: "Typography"
},
data: [
{
children: testString

Просмотреть файл

@ -18,6 +18,6 @@
"node_modules",
"**/*.spec.ts",
"**/*.spec.tsx",
"**/examples.data.ts"
"**/examples.data.tsx"
]
}

Просмотреть файл

@ -1,6 +1,7 @@
const path = require("path");
const ForkTsCheckerWebpackPlugin = require("fork-ts-checker-webpack-plugin");
const HtmlWebpackPlugin = require("html-webpack-plugin");
const WebpackShellPlugin = require("webpack-shell-plugin");
const appDir = path.resolve(__dirname, "./app");
const outDir = path.resolve(__dirname, "./www");
@ -35,6 +36,11 @@ module.exports = {
}),
new HtmlWebpackPlugin({
contentBase: outDir,
}),
new WebpackShellPlugin({
onBuildStart: [
`npm run convert:readme`
]
})
],
resolve: {

510
packages/fast-components-styles-msft/package-lock.json сгенерированный
Просмотреть файл

@ -17,7 +17,7 @@
"resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
"integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
"requires": {
"sprintf-js": "~1.0.2"
"sprintf-js": "1.0.3"
}
},
"babel-code-frame": {
@ -25,9 +25,9 @@
"resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz",
"integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=",
"requires": {
"chalk": "^1.1.3",
"esutils": "^2.0.2",
"js-tokens": "^3.0.2"
"chalk": "1.1.3",
"esutils": "2.0.2",
"js-tokens": "3.0.2"
}
},
"babel-core": {
@ -35,25 +35,25 @@
"resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz",
"integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==",
"requires": {
"babel-code-frame": "^6.26.0",
"babel-generator": "^6.26.0",
"babel-helpers": "^6.24.1",
"babel-messages": "^6.23.0",
"babel-register": "^6.26.0",
"babel-runtime": "^6.26.0",
"babel-template": "^6.26.0",
"babel-traverse": "^6.26.0",
"babel-types": "^6.26.0",
"babylon": "^6.18.0",
"convert-source-map": "^1.5.1",
"debug": "^2.6.9",
"json5": "^0.5.1",
"lodash": "^4.17.4",
"minimatch": "^3.0.4",
"path-is-absolute": "^1.0.1",
"private": "^0.1.8",
"slash": "^1.0.0",
"source-map": "^0.5.7"
"babel-code-frame": "6.26.0",
"babel-generator": "6.26.1",
"babel-helpers": "6.24.1",
"babel-messages": "6.23.0",
"babel-register": "6.26.0",
"babel-runtime": "6.26.0",
"babel-template": "6.26.0",
"babel-traverse": "6.26.0",
"babel-types": "6.26.0",
"babylon": "6.18.0",
"convert-source-map": "1.5.1",
"debug": "2.6.9",
"json5": "0.5.1",
"lodash": "4.17.10",
"minimatch": "3.0.4",
"path-is-absolute": "1.0.1",
"private": "0.1.8",
"slash": "1.0.0",
"source-map": "0.5.7"
}
},
"babel-generator": {
@ -61,14 +61,14 @@
"resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz",
"integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==",
"requires": {
"babel-messages": "^6.23.0",
"babel-runtime": "^6.26.0",
"babel-types": "^6.26.0",
"detect-indent": "^4.0.0",
"jsesc": "^1.3.0",
"lodash": "^4.17.4",
"source-map": "^0.5.7",
"trim-right": "^1.0.1"
"babel-messages": "6.23.0",
"babel-runtime": "6.26.0",
"babel-types": "6.26.0",
"detect-indent": "4.0.0",
"jsesc": "1.3.0",
"lodash": "4.17.10",
"source-map": "0.5.7",
"trim-right": "1.0.1"
}
},
"babel-helper-builder-binary-assignment-operator-visitor": {
@ -76,9 +76,9 @@
"resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz",
"integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=",
"requires": {
"babel-helper-explode-assignable-expression": "^6.24.1",
"babel-runtime": "^6.22.0",
"babel-types": "^6.24.1"
"babel-helper-explode-assignable-expression": "6.24.1",
"babel-runtime": "6.26.0",
"babel-types": "6.26.0"
}
},
"babel-helper-call-delegate": {
@ -86,10 +86,10 @@
"resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz",
"integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=",
"requires": {
"babel-helper-hoist-variables": "^6.24.1",
"babel-runtime": "^6.22.0",
"babel-traverse": "^6.24.1",
"babel-types": "^6.24.1"
"babel-helper-hoist-variables": "6.24.1",
"babel-runtime": "6.26.0",
"babel-traverse": "6.26.0",
"babel-types": "6.26.0"
}
},
"babel-helper-define-map": {
@ -97,10 +97,10 @@
"resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz",
"integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=",
"requires": {
"babel-helper-function-name": "^6.24.1",
"babel-runtime": "^6.26.0",
"babel-types": "^6.26.0",
"lodash": "^4.17.4"
"babel-helper-function-name": "6.24.1",
"babel-runtime": "6.26.0",
"babel-types": "6.26.0",
"lodash": "4.17.10"
}
},
"babel-helper-explode-assignable-expression": {
@ -108,9 +108,9 @@
"resolved": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz",
"integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=",
"requires": {
"babel-runtime": "^6.22.0",
"babel-traverse": "^6.24.1",
"babel-types": "^6.24.1"
"babel-runtime": "6.26.0",
"babel-traverse": "6.26.0",
"babel-types": "6.26.0"
}
},
"babel-helper-function-name": {
@ -118,11 +118,11 @@
"resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz",
"integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=",
"requires": {
"babel-helper-get-function-arity": "^6.24.1",
"babel-runtime": "^6.22.0",
"babel-template": "^6.24.1",
"babel-traverse": "^6.24.1",
"babel-types": "^6.24.1"
"babel-helper-get-function-arity": "6.24.1",
"babel-runtime": "6.26.0",
"babel-template": "6.26.0",
"babel-traverse": "6.26.0",
"babel-types": "6.26.0"
}
},
"babel-helper-get-function-arity": {
@ -130,8 +130,8 @@
"resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz",
"integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=",
"requires": {
"babel-runtime": "^6.22.0",
"babel-types": "^6.24.1"
"babel-runtime": "6.26.0",
"babel-types": "6.26.0"
}
},
"babel-helper-hoist-variables": {
@ -139,8 +139,8 @@
"resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz",
"integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=",
"requires": {
"babel-runtime": "^6.22.0",
"babel-types": "^6.24.1"
"babel-runtime": "6.26.0",
"babel-types": "6.26.0"
}
},
"babel-helper-optimise-call-expression": {
@ -148,8 +148,8 @@
"resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz",
"integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=",
"requires": {
"babel-runtime": "^6.22.0",
"babel-types": "^6.24.1"
"babel-runtime": "6.26.0",
"babel-types": "6.26.0"
}
},
"babel-helper-regex": {
@ -157,9 +157,9 @@
"resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz",
"integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=",
"requires": {
"babel-runtime": "^6.26.0",
"babel-types": "^6.26.0",
"lodash": "^4.17.4"
"babel-runtime": "6.26.0",
"babel-types": "6.26.0",
"lodash": "4.17.10"
}
},
"babel-helper-remap-async-to-generator": {
@ -167,11 +167,11 @@
"resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz",
"integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=",
"requires": {
"babel-helper-function-name": "^6.24.1",
"babel-runtime": "^6.22.0",
"babel-template": "^6.24.1",
"babel-traverse": "^6.24.1",
"babel-types": "^6.24.1"
"babel-helper-function-name": "6.24.1",
"babel-runtime": "6.26.0",
"babel-template": "6.26.0",
"babel-traverse": "6.26.0",
"babel-types": "6.26.0"
}
},
"babel-helper-replace-supers": {
@ -179,12 +179,12 @@
"resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz",
"integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=",
"requires": {
"babel-helper-optimise-call-expression": "^6.24.1",
"babel-messages": "^6.23.0",
"babel-runtime": "^6.22.0",
"babel-template": "^6.24.1",
"babel-traverse": "^6.24.1",
"babel-types": "^6.24.1"
"babel-helper-optimise-call-expression": "6.24.1",
"babel-messages": "6.23.0",
"babel-runtime": "6.26.0",
"babel-template": "6.26.0",
"babel-traverse": "6.26.0",
"babel-types": "6.26.0"
}
},
"babel-helpers": {
@ -192,8 +192,8 @@
"resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz",
"integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=",
"requires": {
"babel-runtime": "^6.22.0",
"babel-template": "^6.24.1"
"babel-runtime": "6.26.0",
"babel-template": "6.26.0"
}
},
"babel-messages": {
@ -201,7 +201,7 @@
"resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz",
"integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=",
"requires": {
"babel-runtime": "^6.22.0"
"babel-runtime": "6.26.0"
}
},
"babel-plugin-check-es2015-constants": {
@ -209,7 +209,7 @@
"resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz",
"integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=",
"requires": {
"babel-runtime": "^6.22.0"
"babel-runtime": "6.26.0"
}
},
"babel-plugin-syntax-async-functions": {
@ -232,9 +232,9 @@
"resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz",
"integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=",
"requires": {
"babel-helper-remap-async-to-generator": "^6.24.1",
"babel-plugin-syntax-async-functions": "^6.8.0",
"babel-runtime": "^6.22.0"
"babel-helper-remap-async-to-generator": "6.24.1",
"babel-plugin-syntax-async-functions": "6.13.0",
"babel-runtime": "6.26.0"
}
},
"babel-plugin-transform-es2015-arrow-functions": {
@ -242,7 +242,7 @@
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz",
"integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=",
"requires": {
"babel-runtime": "^6.22.0"
"babel-runtime": "6.26.0"
}
},
"babel-plugin-transform-es2015-block-scoped-functions": {
@ -250,7 +250,7 @@
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz",
"integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=",
"requires": {
"babel-runtime": "^6.22.0"
"babel-runtime": "6.26.0"
}
},
"babel-plugin-transform-es2015-block-scoping": {
@ -258,11 +258,11 @@
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz",
"integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=",
"requires": {
"babel-runtime": "^6.26.0",
"babel-template": "^6.26.0",
"babel-traverse": "^6.26.0",
"babel-types": "^6.26.0",
"lodash": "^4.17.4"
"babel-runtime": "6.26.0",
"babel-template": "6.26.0",
"babel-traverse": "6.26.0",
"babel-types": "6.26.0",
"lodash": "4.17.10"
}
},
"babel-plugin-transform-es2015-classes": {
@ -270,15 +270,15 @@
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz",
"integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=",
"requires": {
"babel-helper-define-map": "^6.24.1",
"babel-helper-function-name": "^6.24.1",
"babel-helper-optimise-call-expression": "^6.24.1",
"babel-helper-replace-supers": "^6.24.1",
"babel-messages": "^6.23.0",
"babel-runtime": "^6.22.0",
"babel-template": "^6.24.1",
"babel-traverse": "^6.24.1",
"babel-types": "^6.24.1"
"babel-helper-define-map": "6.26.0",
"babel-helper-function-name": "6.24.1",
"babel-helper-optimise-call-expression": "6.24.1",
"babel-helper-replace-supers": "6.24.1",
"babel-messages": "6.23.0",
"babel-runtime": "6.26.0",
"babel-template": "6.26.0",
"babel-traverse": "6.26.0",
"babel-types": "6.26.0"
}
},
"babel-plugin-transform-es2015-computed-properties": {
@ -286,8 +286,8 @@
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz",
"integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=",
"requires": {
"babel-runtime": "^6.22.0",
"babel-template": "^6.24.1"
"babel-runtime": "6.26.0",
"babel-template": "6.26.0"
}
},
"babel-plugin-transform-es2015-destructuring": {
@ -295,7 +295,7 @@
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz",
"integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=",
"requires": {
"babel-runtime": "^6.22.0"
"babel-runtime": "6.26.0"
}
},
"babel-plugin-transform-es2015-duplicate-keys": {
@ -303,8 +303,8 @@
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz",
"integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=",
"requires": {
"babel-runtime": "^6.22.0",
"babel-types": "^6.24.1"
"babel-runtime": "6.26.0",
"babel-types": "6.26.0"
}
},
"babel-plugin-transform-es2015-for-of": {
@ -312,7 +312,7 @@
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz",
"integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=",
"requires": {
"babel-runtime": "^6.22.0"
"babel-runtime": "6.26.0"
}
},
"babel-plugin-transform-es2015-function-name": {
@ -320,9 +320,9 @@
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz",
"integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=",
"requires": {
"babel-helper-function-name": "^6.24.1",
"babel-runtime": "^6.22.0",
"babel-types": "^6.24.1"
"babel-helper-function-name": "6.24.1",
"babel-runtime": "6.26.0",
"babel-types": "6.26.0"
}
},
"babel-plugin-transform-es2015-literals": {
@ -330,7 +330,7 @@
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz",
"integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=",
"requires": {
"babel-runtime": "^6.22.0"
"babel-runtime": "6.26.0"
}
},
"babel-plugin-transform-es2015-modules-amd": {
@ -338,9 +338,9 @@
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz",
"integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=",
"requires": {
"babel-plugin-transform-es2015-modules-commonjs": "^6.24.1",
"babel-runtime": "^6.22.0",
"babel-template": "^6.24.1"
"babel-plugin-transform-es2015-modules-commonjs": "6.26.2",
"babel-runtime": "6.26.0",
"babel-template": "6.26.0"
}
},
"babel-plugin-transform-es2015-modules-commonjs": {
@ -348,10 +348,10 @@
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz",
"integrity": "sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q==",
"requires": {
"babel-plugin-transform-strict-mode": "^6.24.1",
"babel-runtime": "^6.26.0",
"babel-template": "^6.26.0",
"babel-types": "^6.26.0"
"babel-plugin-transform-strict-mode": "6.24.1",
"babel-runtime": "6.26.0",
"babel-template": "6.26.0",
"babel-types": "6.26.0"
}
},
"babel-plugin-transform-es2015-modules-systemjs": {
@ -359,9 +359,9 @@
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz",
"integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=",
"requires": {
"babel-helper-hoist-variables": "^6.24.1",
"babel-runtime": "^6.22.0",
"babel-template": "^6.24.1"
"babel-helper-hoist-variables": "6.24.1",
"babel-runtime": "6.26.0",
"babel-template": "6.26.0"
}
},
"babel-plugin-transform-es2015-modules-umd": {
@ -369,9 +369,9 @@
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz",
"integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=",
"requires": {
"babel-plugin-transform-es2015-modules-amd": "^6.24.1",
"babel-runtime": "^6.22.0",
"babel-template": "^6.24.1"
"babel-plugin-transform-es2015-modules-amd": "6.24.1",
"babel-runtime": "6.26.0",
"babel-template": "6.26.0"
}
},
"babel-plugin-transform-es2015-object-super": {
@ -379,8 +379,8 @@
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz",
"integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=",
"requires": {
"babel-helper-replace-supers": "^6.24.1",
"babel-runtime": "^6.22.0"
"babel-helper-replace-supers": "6.24.1",
"babel-runtime": "6.26.0"
}
},
"babel-plugin-transform-es2015-parameters": {
@ -388,12 +388,12 @@
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz",
"integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=",
"requires": {
"babel-helper-call-delegate": "^6.24.1",
"babel-helper-get-function-arity": "^6.24.1",
"babel-runtime": "^6.22.0",
"babel-template": "^6.24.1",
"babel-traverse": "^6.24.1",
"babel-types": "^6.24.1"
"babel-helper-call-delegate": "6.24.1",
"babel-helper-get-function-arity": "6.24.1",
"babel-runtime": "6.26.0",
"babel-template": "6.26.0",
"babel-traverse": "6.26.0",
"babel-types": "6.26.0"
}
},
"babel-plugin-transform-es2015-shorthand-properties": {
@ -401,8 +401,8 @@
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz",
"integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=",
"requires": {
"babel-runtime": "^6.22.0",
"babel-types": "^6.24.1"
"babel-runtime": "6.26.0",
"babel-types": "6.26.0"
}
},
"babel-plugin-transform-es2015-spread": {
@ -410,7 +410,7 @@
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz",
"integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=",
"requires": {
"babel-runtime": "^6.22.0"
"babel-runtime": "6.26.0"
}
},
"babel-plugin-transform-es2015-sticky-regex": {
@ -418,9 +418,9 @@
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz",
"integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=",
"requires": {
"babel-helper-regex": "^6.24.1",
"babel-runtime": "^6.22.0",
"babel-types": "^6.24.1"
"babel-helper-regex": "6.26.0",
"babel-runtime": "6.26.0",
"babel-types": "6.26.0"
}
},
"babel-plugin-transform-es2015-template-literals": {
@ -428,7 +428,7 @@
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz",
"integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=",
"requires": {
"babel-runtime": "^6.22.0"
"babel-runtime": "6.26.0"
}
},
"babel-plugin-transform-es2015-typeof-symbol": {
@ -436,7 +436,7 @@
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz",
"integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=",
"requires": {
"babel-runtime": "^6.22.0"
"babel-runtime": "6.26.0"
}
},
"babel-plugin-transform-es2015-unicode-regex": {
@ -444,9 +444,9 @@
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz",
"integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=",
"requires": {
"babel-helper-regex": "^6.24.1",
"babel-runtime": "^6.22.0",
"regexpu-core": "^2.0.0"
"babel-helper-regex": "6.26.0",
"babel-runtime": "6.26.0",
"regexpu-core": "2.0.0"
}
},
"babel-plugin-transform-exponentiation-operator": {
@ -454,9 +454,9 @@
"resolved": "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz",
"integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=",
"requires": {
"babel-helper-builder-binary-assignment-operator-visitor": "^6.24.1",
"babel-plugin-syntax-exponentiation-operator": "^6.8.0",
"babel-runtime": "^6.22.0"
"babel-helper-builder-binary-assignment-operator-visitor": "6.24.1",
"babel-plugin-syntax-exponentiation-operator": "6.13.0",
"babel-runtime": "6.26.0"
}
},
"babel-plugin-transform-regenerator": {
@ -464,7 +464,7 @@
"resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz",
"integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=",
"requires": {
"regenerator-transform": "^0.10.0"
"regenerator-transform": "0.10.1"
}
},
"babel-plugin-transform-strict-mode": {
@ -472,8 +472,8 @@
"resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz",
"integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=",
"requires": {
"babel-runtime": "^6.22.0",
"babel-types": "^6.24.1"
"babel-runtime": "6.26.0",
"babel-types": "6.26.0"
}
},
"babel-preset-env": {
@ -481,36 +481,36 @@
"resolved": "https://registry.npmjs.org/babel-preset-env/-/babel-preset-env-1.7.0.tgz",
"integrity": "sha512-9OR2afuKDneX2/q2EurSftUYM0xGu4O2D9adAhVfADDhrYDaxXV0rBbevVYoY9n6nyX1PmQW/0jtpJvUNr9CHg==",
"requires": {
"babel-plugin-check-es2015-constants": "^6.22.0",
"babel-plugin-syntax-trailing-function-commas": "^6.22.0",
"babel-plugin-transform-async-to-generator": "^6.22.0",
"babel-plugin-transform-es2015-arrow-functions": "^6.22.0",
"babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0",
"babel-plugin-transform-es2015-block-scoping": "^6.23.0",
"babel-plugin-transform-es2015-classes": "^6.23.0",
"babel-plugin-transform-es2015-computed-properties": "^6.22.0",
"babel-plugin-transform-es2015-destructuring": "^6.23.0",
"babel-plugin-transform-es2015-duplicate-keys": "^6.22.0",
"babel-plugin-transform-es2015-for-of": "^6.23.0",
"babel-plugin-transform-es2015-function-name": "^6.22.0",
"babel-plugin-transform-es2015-literals": "^6.22.0",
"babel-plugin-transform-es2015-modules-amd": "^6.22.0",
"babel-plugin-transform-es2015-modules-commonjs": "^6.23.0",
"babel-plugin-transform-es2015-modules-systemjs": "^6.23.0",
"babel-plugin-transform-es2015-modules-umd": "^6.23.0",
"babel-plugin-transform-es2015-object-super": "^6.22.0",
"babel-plugin-transform-es2015-parameters": "^6.23.0",
"babel-plugin-transform-es2015-shorthand-properties": "^6.22.0",
"babel-plugin-transform-es2015-spread": "^6.22.0",
"babel-plugin-transform-es2015-sticky-regex": "^6.22.0",
"babel-plugin-transform-es2015-template-literals": "^6.22.0",
"babel-plugin-transform-es2015-typeof-symbol": "^6.23.0",
"babel-plugin-transform-es2015-unicode-regex": "^6.22.0",
"babel-plugin-transform-exponentiation-operator": "^6.22.0",
"babel-plugin-transform-regenerator": "^6.22.0",
"browserslist": "^3.2.6",
"invariant": "^2.2.2",
"semver": "^5.3.0"
"babel-plugin-check-es2015-constants": "6.22.0",
"babel-plugin-syntax-trailing-function-commas": "6.22.0",
"babel-plugin-transform-async-to-generator": "6.24.1",
"babel-plugin-transform-es2015-arrow-functions": "6.22.0",
"babel-plugin-transform-es2015-block-scoped-functions": "6.22.0",
"babel-plugin-transform-es2015-block-scoping": "6.26.0",
"babel-plugin-transform-es2015-classes": "6.24.1",
"babel-plugin-transform-es2015-computed-properties": "6.24.1",
"babel-plugin-transform-es2015-destructuring": "6.23.0",
"babel-plugin-transform-es2015-duplicate-keys": "6.24.1",
"babel-plugin-transform-es2015-for-of": "6.23.0",
"babel-plugin-transform-es2015-function-name": "6.24.1",
"babel-plugin-transform-es2015-literals": "6.22.0",
"babel-plugin-transform-es2015-modules-amd": "6.24.1",
"babel-plugin-transform-es2015-modules-commonjs": "6.26.2",
"babel-plugin-transform-es2015-modules-systemjs": "6.24.1",
"babel-plugin-transform-es2015-modules-umd": "6.24.1",
"babel-plugin-transform-es2015-object-super": "6.24.1",
"babel-plugin-transform-es2015-parameters": "6.24.1",
"babel-plugin-transform-es2015-shorthand-properties": "6.24.1",
"babel-plugin-transform-es2015-spread": "6.22.0",
"babel-plugin-transform-es2015-sticky-regex": "6.24.1",
"babel-plugin-transform-es2015-template-literals": "6.22.0",
"babel-plugin-transform-es2015-typeof-symbol": "6.23.0",
"babel-plugin-transform-es2015-unicode-regex": "6.24.1",
"babel-plugin-transform-exponentiation-operator": "6.24.1",
"babel-plugin-transform-regenerator": "6.26.0",
"browserslist": "3.2.7",
"invariant": "2.2.4",
"semver": "5.5.0"
}
},
"babel-register": {
@ -518,13 +518,13 @@
"resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz",
"integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=",
"requires": {
"babel-core": "^6.26.0",
"babel-runtime": "^6.26.0",
"core-js": "^2.5.0",
"home-or-tmp": "^2.0.0",
"lodash": "^4.17.4",
"mkdirp": "^0.5.1",
"source-map-support": "^0.4.15"
"babel-core": "6.26.3",
"babel-runtime": "6.26.0",
"core-js": "2.5.6",
"home-or-tmp": "2.0.0",
"lodash": "4.17.10",
"mkdirp": "0.5.1",
"source-map-support": "0.4.18"
}
},
"babel-runtime": {
@ -532,8 +532,8 @@
"resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"requires": {
"core-js": "^2.4.0",
"regenerator-runtime": "^0.11.0"
"core-js": "2.5.6",
"regenerator-runtime": "0.11.1"
}
},
"babel-template": {
@ -541,11 +541,11 @@
"resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz",
"integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=",
"requires": {
"babel-runtime": "^6.26.0",
"babel-traverse": "^6.26.0",
"babel-types": "^6.26.0",
"babylon": "^6.18.0",
"lodash": "^4.17.4"
"babel-runtime": "6.26.0",
"babel-traverse": "6.26.0",
"babel-types": "6.26.0",
"babylon": "6.18.0",
"lodash": "4.17.10"
}
},
"babel-traverse": {
@ -553,15 +553,15 @@
"resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz",
"integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=",
"requires": {
"babel-code-frame": "^6.26.0",
"babel-messages": "^6.23.0",
"babel-runtime": "^6.26.0",
"babel-types": "^6.26.0",
"babylon": "^6.18.0",
"debug": "^2.6.8",
"globals": "^9.18.0",
"invariant": "^2.2.2",
"lodash": "^4.17.4"
"babel-code-frame": "6.26.0",
"babel-messages": "6.23.0",
"babel-runtime": "6.26.0",
"babel-types": "6.26.0",
"babylon": "6.18.0",
"debug": "2.6.9",
"globals": "9.18.0",
"invariant": "2.2.4",
"lodash": "4.17.10"
}
},
"babel-types": {
@ -569,10 +569,10 @@
"resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz",
"integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=",
"requires": {
"babel-runtime": "^6.26.0",
"esutils": "^2.0.2",
"lodash": "^4.17.4",
"to-fast-properties": "^1.0.3"
"babel-runtime": "6.26.0",
"esutils": "2.0.2",
"lodash": "4.17.10",
"to-fast-properties": "1.0.3"
}
},
"babylon": {
@ -590,7 +590,7 @@
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
"requires": {
"balanced-match": "^1.0.0",
"balanced-match": "1.0.0",
"concat-map": "0.0.1"
}
},
@ -599,8 +599,8 @@
"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-3.2.7.tgz",
"integrity": "sha512-oYVLxFVqpX9uMhOIQBLtZL+CX4uY8ZpWcjNTaxyWl5rO8yA9SSNikFnAfvk8J3P/7z3BZwNmEqFKaJoYltj3MQ==",
"requires": {
"caniuse-lite": "^1.0.30000835",
"electron-to-chromium": "^1.3.45"
"caniuse-lite": "1.0.30000842",
"electron-to-chromium": "1.3.47"
}
},
"builtin-modules": {
@ -618,11 +618,11 @@
"resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
"integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
"requires": {
"ansi-styles": "^2.2.1",
"escape-string-regexp": "^1.0.2",
"has-ansi": "^2.0.0",
"strip-ansi": "^3.0.0",
"supports-color": "^2.0.0"
"ansi-styles": "2.2.1",
"escape-string-regexp": "1.0.5",
"has-ansi": "2.0.0",
"strip-ansi": "3.0.1",
"supports-color": "2.0.0"
}
},
"chroma-js": {
@ -635,7 +635,7 @@
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.1.tgz",
"integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==",
"requires": {
"color-name": "^1.1.1"
"color-name": "1.1.3"
}
},
"color-name": {
@ -676,7 +676,7 @@
"resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz",
"integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=",
"requires": {
"repeating": "^2.0.0"
"repeating": "2.0.1"
}
},
"diff": {
@ -714,12 +714,12 @@
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz",
"integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==",
"requires": {
"fs.realpath": "^1.0.0",
"inflight": "^1.0.4",
"inherits": "2",
"minimatch": "^3.0.4",
"once": "^1.3.0",
"path-is-absolute": "^1.0.0"
"fs.realpath": "1.0.0",
"inflight": "1.0.6",
"inherits": "2.0.3",
"minimatch": "3.0.4",
"once": "1.4.0",
"path-is-absolute": "1.0.1"
}
},
"globals": {
@ -732,7 +732,7 @@
"resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
"integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
"requires": {
"ansi-regex": "^2.0.0"
"ansi-regex": "2.1.1"
}
},
"has-flag": {
@ -745,8 +745,8 @@
"resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz",
"integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=",
"requires": {
"os-homedir": "^1.0.0",
"os-tmpdir": "^1.0.1"
"os-homedir": "1.0.2",
"os-tmpdir": "1.0.2"
}
},
"inflight": {
@ -754,8 +754,8 @@
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
"integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
"requires": {
"once": "^1.3.0",
"wrappy": "1"
"once": "1.4.0",
"wrappy": "1.0.2"
}
},
"inherits": {
@ -768,7 +768,7 @@
"resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz",
"integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==",
"requires": {
"loose-envify": "^1.0.0"
"loose-envify": "1.3.1"
}
},
"is-finite": {
@ -776,7 +776,7 @@
"resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz",
"integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=",
"requires": {
"number-is-nan": "^1.0.0"
"number-is-nan": "1.0.1"
}
},
"js-tokens": {
@ -789,8 +789,8 @@
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.11.0.tgz",
"integrity": "sha512-saJstZWv7oNeOyBh3+Dx1qWzhW0+e6/8eDzo7p5rDFqxntSztloLtuKu+Ejhtq82jsilwOIZYsCz+lIjthg1Hw==",
"requires": {
"argparse": "^1.0.7",
"esprima": "^4.0.0"
"argparse": "1.0.10",
"esprima": "4.0.0"
}
},
"jsesc": {
@ -813,7 +813,7 @@
"resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz",
"integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=",
"requires": {
"js-tokens": "^3.0.0"
"js-tokens": "3.0.2"
}
},
"minimatch": {
@ -821,7 +821,7 @@
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
"integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
"requires": {
"brace-expansion": "^1.1.7"
"brace-expansion": "1.1.11"
}
},
"minimist": {
@ -852,7 +852,7 @@
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
"integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
"requires": {
"wrappy": "1"
"wrappy": "1.0.2"
}
},
"os-homedir": {
@ -895,9 +895,9 @@
"resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz",
"integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==",
"requires": {
"babel-runtime": "^6.18.0",
"babel-types": "^6.19.0",
"private": "^0.1.6"
"babel-runtime": "6.26.0",
"babel-types": "6.26.0",
"private": "0.1.8"
}
},
"regexpu-core": {
@ -905,9 +905,9 @@
"resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz",
"integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=",
"requires": {
"regenerate": "^1.2.1",
"regjsgen": "^0.2.0",
"regjsparser": "^0.1.4"
"regenerate": "1.4.0",
"regjsgen": "0.2.0",
"regjsparser": "0.1.5"
}
},
"regjsgen": {
@ -920,7 +920,7 @@
"resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz",
"integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=",
"requires": {
"jsesc": "~0.5.0"
"jsesc": "0.5.0"
},
"dependencies": {
"jsesc": {
@ -935,7 +935,7 @@
"resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz",
"integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=",
"requires": {
"is-finite": "^1.0.0"
"is-finite": "1.0.2"
}
},
"resolve": {
@ -943,7 +943,7 @@
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.7.1.tgz",
"integrity": "sha512-c7rwLofp8g1U+h1KNyHL/jicrKg1Ek4q+Lr33AL65uZTinUZHe30D5HlyN5V9NW0JX1D5dXQ4jqW5l7Sy/kGfw==",
"requires": {
"path-parse": "^1.0.5"
"path-parse": "1.0.5"
}
},
"semver": {
@ -966,7 +966,7 @@
"resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz",
"integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==",
"requires": {
"source-map": "^0.5.6"
"source-map": "0.5.7"
}
},
"sprintf-js": {
@ -979,7 +979,7 @@
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
"integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
"requires": {
"ansi-regex": "^2.0.0"
"ansi-regex": "2.1.1"
}
},
"supports-color": {
@ -1007,18 +1007,18 @@
"resolved": "https://registry.npmjs.org/tslint/-/tslint-5.10.0.tgz",
"integrity": "sha1-EeJrzLiK+gLdDZlWyuPUVAtfVMM=",
"requires": {
"babel-code-frame": "^6.22.0",
"builtin-modules": "^1.1.1",
"chalk": "^2.3.0",
"commander": "^2.12.1",
"diff": "^3.2.0",
"glob": "^7.1.1",
"js-yaml": "^3.7.0",
"minimatch": "^3.0.4",
"resolve": "^1.3.2",
"semver": "^5.3.0",
"tslib": "^1.8.0",
"tsutils": "^2.12.1"
"babel-code-frame": "6.26.0",
"builtin-modules": "1.1.1",
"chalk": "2.4.1",
"commander": "2.15.1",
"diff": "3.5.0",
"glob": "7.1.2",
"js-yaml": "3.11.0",
"minimatch": "3.0.4",
"resolve": "1.7.1",
"semver": "5.5.0",
"tslib": "1.9.1",
"tsutils": "2.27.0"
},
"dependencies": {
"ansi-styles": {
@ -1026,7 +1026,7 @@
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
"integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
"requires": {
"color-convert": "^1.9.0"
"color-convert": "1.9.1"
}
},
"chalk": {
@ -1034,9 +1034,9 @@
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz",
"integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==",
"requires": {
"ansi-styles": "^3.2.1",
"escape-string-regexp": "^1.0.5",
"supports-color": "^5.3.0"
"ansi-styles": "3.2.1",
"escape-string-regexp": "1.0.5",
"supports-color": "5.4.0"
}
},
"supports-color": {
@ -1044,7 +1044,7 @@
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz",
"integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==",
"requires": {
"has-flag": "^3.0.0"
"has-flag": "3.0.0"
}
}
}
@ -1054,7 +1054,7 @@
"resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.27.0.tgz",
"integrity": "sha512-JcyX25oM9pFcb3zh60OqG1St8p/uSqC5Bgipdo3ieacB/Ao4dPhm7hAtKT9NrEu23CyYrrgJPV3CqYfo+/+T4w==",
"requires": {
"tslib": "^1.8.1"
"tslib": "1.9.1"
}
},
"typescript": {

Просмотреть файл

@ -1,13 +1,23 @@
import * as React from "react";
import * as ReactDOM from "react-dom";
import { glyphBuildingblocks } from "@microsoft/fast-glyphs-msft";
import Site, { IFormChildOption, SiteCategory, SiteCategoryIcon, SiteCategoryItem, SiteMenu, SiteMenuItem } from "../src";
import Button from "./components/button";
import ButtonSchema from "./components/button.schema.json";
import Paragraph from "./components/paragraph";
import ParagraphSchema from "./components/paragraph.schema.json";
import Site, {
IFormChildOption,
SiteCategory,
SiteCategoryDocumentation,
SiteCategoryIcon,
SiteCategoryItem,
SiteMenu,
SiteMenuItem
} from "../src";
import Button from "./components/button/button";
import ButtonSchema from "./components/button/button.schema.json";
import Paragraph from "./components/paragraph/paragraph";
import ParagraphSchema from "./components/paragraph/paragraph.schema.json";
import PolymerHeading from "./components/polymer-heading";
import { ISiteCategoryProps } from "../src/components/site/category";
import ParagraphDocs from "./components/paragraph/.tmp/documentation";
import ButtonDocs from "./components/button/.tmp/documentation";
function renderSiteMenu(): JSX.Element {
return (
@ -31,15 +41,41 @@ function renderBuildingBlocks(): JSX.Element {
function renderComponentsFactory(componentData: any[]): JSX.Element[] {
return componentData.map((componentDataItem: any, index: number) => {
return (
<SiteCategoryItem slot={"canvas"} key={index} data={componentDataItem} />
<SiteCategoryItem
slot={index === 0 ? "canvas-detail-view-example" : "canvas-example-view"}
key={index}
data={componentDataItem}
/>
);
});
}
function renderDocumentation(categoryObj: ISiteCategoryProps): JSX.Element {
switch (categoryObj.name) {
case "Paragraph Nested":
case "Paragraph":
return (
<SiteCategoryDocumentation slot={"canvas-detail-view-documentation"}>
<ParagraphDocs />
</SiteCategoryDocumentation>
);
case "Other Button":
case "Button":
return (
<SiteCategoryDocumentation slot={"canvas-detail-view-documentation"}>
<ButtonDocs />
</SiteCategoryDocumentation>
);
default:
return null;
}
}
function renderCategory(componentObj: any[], categoryObj: ISiteCategoryProps): JSX.Element {
return (
<SiteCategory {...categoryObj}>
{renderComponentsFactory(componentObj)}
{renderDocumentation(categoryObj)}
</SiteCategory>
);
}
@ -118,7 +154,7 @@ const formChildOptions: IFormChildOption[] = [
function render(): void {
ReactDOM.render(
<Site
title={"FAST Development site test"}
title={"FAST Documentation site"}
formChildOptions={formChildOptions}
frameworks={["react" as any, "angular" as any]}
>

Просмотреть файл

@ -0,0 +1,2 @@
# Button
The button test component.

Просмотреть файл

@ -0,0 +1,2 @@
# Paragraph
The paragraph test component.

4163
packages/fast-development-site-react/package-lock.json сгенерированный

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Просмотреть файл

@ -16,10 +16,11 @@
"types": "dist/index.d.ts",
"scripts": {
"clean:dist": "node ../../build/clean.js dist",
"convert:readme": "node ../../build/convert-readme.js --src=app/**/README.md .tmp",
"build:app": "webpack --progress",
"prepare": "npm run clean:dist && tsc -p ./tsconfig.json",
"start": "webpack-dev-server --progress",
"test": "npm run tslint && npm run build:app",
"test": "npm run convert:readme && npm run tslint && npm run build:app",
"tslint": "tslint -c ./tslint.json '**/*.ts{,x}'",
"tslint:fix": "tslint -c ./tslint.json --fix '**/*.ts{,x}'"
},
@ -28,7 +29,8 @@
"@microsoft/fast-glyphs-msft": "^1.6.0",
"@microsoft/fast-jss-manager-react": "^1.6.0",
"@microsoft/fast-jss-utilities": "^1.6.0",
"@microsoft/fast-layouts-react": "^1.0.0"
"@microsoft/fast-layouts-react": "^1.0.0",
"@microsoft/fast-markdown-msft-react": "^1.6.0"
},
"devDependencies": {
"@microsoft/fast-tslint-rules": "^1.6.0",
@ -54,6 +56,7 @@
"webpack": "^4.0.1",
"webpack-cli": "^2.0.11",
"webpack-dev-server": "^3.1.0",
"webpack-shell-plugin": "^0.5.0",
"yargs": "^11.0.0"
},
"peerDependencies": {

Просмотреть файл

@ -130,8 +130,15 @@ class ActionBar extends React.Component<IActionBarProps & IManagedClasses<IActio
<ComponentViewToggle
to={this.props.match.path}
onClick={this.onComponentViewChangeCallback(ComponentViewTypes.detail)}
label="View examples"
label="View detail"
current={this.isAriaCurrent(ComponentViewTypes.detail)}
glyph={glyphPage}
/>
<ComponentViewToggle
to={`${this.props.match.path}${ComponentViewTypes[ComponentViewTypes.examples]}/`}
onClick={this.onComponentViewChangeCallback(ComponentViewTypes.examples)}
label="View examples"
current={this.isAriaCurrent(ComponentViewTypes.examples)}
glyph={glyphExamples}
/>
</div>

Просмотреть файл

@ -0,0 +1,17 @@
import * as React from "react";
export interface ICategoryDocumentationProps {
slot: string;
}
class CategoryDocumentation extends React.Component<ICategoryDocumentationProps, {}> {
public render(): JSX.Element {
return (
<div>
{this.props.children}
</div>
);
}
}
export default CategoryDocumentation;

Просмотреть файл

@ -9,7 +9,7 @@ export interface ISiteCategoryItemManagedClasses {
}
export interface ISiteCategoryItemProps {
slot: string;
slot?: string;
categoryItemComponentMinWidth?: number;
designSystem?: any;
data: any;

Просмотреть файл

@ -2,6 +2,7 @@ import * as React from "react";
import { Route, Switch, withRouter } from "react-router-dom";
import { RouteComponentProps } from "react-router";
import { IDevSiteDesignSystem } from "../design-system";
import { toPx } from "@microsoft/fast-jss-utilities";
import manageJss, { ComponentStyles, IJSSManagerProps, IManagedClasses } from "@microsoft/fast-jss-manager-react";
/**
@ -13,41 +14,56 @@ export enum ComponentViewTypes {
}
export interface IComponentViewManagedClasses {
componentView: string;
componentExampleView: string;
componentDetailView: string;
}
export interface IComponentViewProps extends RouteComponentProps<{}> {
viewType: ComponentViewTypes;
}
const style: ComponentStyles<IComponentViewManagedClasses, IDevSiteDesignSystem> = {
componentView: {
componentExampleView: {
overflow: "auto",
flexGrow: "1",
width: "100%",
display: "grid",
gridTemplateColumns: "1fr 1fr 1fr",
},
componentDetailView: {
overflow: "auto",
flexGrow: "1"
}
};
class ComponentView extends React.Component<RouteComponentProps<{}> & IManagedClasses<IComponentViewManagedClasses>, {}> {
class ComponentView extends React.Component<IComponentViewProps & IManagedClasses<IComponentViewManagedClasses>, {}> {
public render(): React.ReactElement<HTMLDivElement> {
// TODO: #294, #295 uncomment and use exact match for the detail page and examples page when detail page
// content is available
return (
<div className={this.props.managedClasses.componentView}>
<div className={this.getClassName()}>
<Switch>
<Route path="/" exact={true} component={null} />
{/* <Route path={this.props.match.url} exact={true} component={this.renderDetailPage} /> */}
<Route path={this.props.match.url} component={this.renderExamplesPage} />
<Route
path={this.props.match.url}
exact={true}
component={this.renderView}
/>
<Route
path={`${this.props.match.url}/${ComponentViewTypes[ComponentViewTypes.examples]}`}
exact={true}
component={this.renderView}
/>
</Switch>
</div>
);
}
private renderDetailPage = (): React.ReactElement<HTMLElement> => {
return (
<h1>Detail</h1>
);
private getClassName(): string {
return this.props.viewType === ComponentViewTypes.examples
? this.props.managedClasses.componentExampleView
: this.props.managedClasses.componentDetailView;
}
private renderExamplesPage = (): React.ReactNode => {
private renderView = (): React.ReactElement<HTMLElement> => {
return (
<React.Fragment>
{this.props.children}

Просмотреть файл

@ -18,8 +18,9 @@ export interface IComponentWrapperManagedClasses {
export interface IComponentWrapperProps<T> {
active: boolean;
index: number;
singleRow?: boolean;
designSystem: T;
onClick: (activeIndex: number) => void;
onClick?: (activeIndex: number) => void;
}
const componentWrapperBorder: string = `${toPx(1)} solid rgb(226, 226, 226)`;
@ -91,7 +92,9 @@ class ComponentWrapper extends React.Component<IComponentWrapperProps<IDevSiteDe
}
private handleClick = (): void => {
this.props.onClick(this.props.index);
if (this.props.onClick) {
this.props.onClick(this.props.index);
}
}
}

Просмотреть файл

@ -13,6 +13,7 @@ import CategoryList from "./category-list";
import SiteMenu from "./menu";
import SiteMenuItem from "./menu-item";
import SiteCategory from "./category";
import SiteCategoryDocumentation from "./category-documentation";
import SiteCategoryIcon from "./category-icon";
import SiteCategoryItem from "./category-item";
import ActionBar from "./action-bar";
@ -30,6 +31,12 @@ import {
Row
} from "@microsoft/fast-layouts-react";
export enum ComponentViewSlot {
example = "canvas-example-view",
detailExample = "canvas-detail-view-example",
detailDocumentation = "canvas-detail-view-documentation"
}
export interface ISiteProps {
title: string;
formChildOptions: IFormChildOption[];
@ -48,7 +55,8 @@ export interface IComponentRoute {
route: string;
schema: any;
componentMapping: any;
component: JSX.Element[];
exampleView: JSX.Element[];
detailView: JSX.Element[];
}
export interface IComponentData {
@ -60,6 +68,7 @@ export interface ISiteState {
activeComponentIndex: number;
componentName: string;
componentData: IComponentData;
detailViewComponentData: IComponentData;
tableOfContentsCollapsed: boolean;
componentView: ComponentViewTypes;
formView: boolean;
@ -154,6 +163,7 @@ class Site extends React.Component<ISiteProps & IManagedClasses<ISiteManagedClas
componentView: ComponentViewTypes.examples,
componentName: this.getComponentName(),
componentData: this.getComponentData(),
detailViewComponentData: this.getDetailViewComponentData(),
formView: true,
devToolsView: false
};
@ -170,7 +180,7 @@ class Site extends React.Component<ISiteProps & IManagedClasses<ISiteManagedClas
exact={true}
path={"/"}
>
{this.renderShellRow({component: null, route: "/"} as IComponentRoute)}
{this.renderShellRow({exampleView: null, route: "/"} as IComponentRoute)}
</Route>
{this.renderRoutes()}
<Route path="*" component={NotFound} />
@ -200,7 +210,7 @@ class Site extends React.Component<ISiteProps & IManagedClasses<ISiteManagedClas
this.getRoutes((this.props.children as JSX.Element), "/", SiteSlot.category).forEach((route: IComponentRoute) => {
componentData[route.route] = [];
route.component.forEach((routeChild: JSX.Element, index: number) => {
route.exampleView.forEach((routeChild: JSX.Element, index: number) => {
componentData[route.route][index] = routeChild.props.data;
});
});
@ -208,6 +218,21 @@ class Site extends React.Component<ISiteProps & IManagedClasses<ISiteManagedClas
return componentData;
}
private getDetailViewComponentData(): IComponentData {
const componentData: IComponentData = {};
this.getRoutes((this.props.children as JSX.Element), "/", SiteSlot.category).forEach((route: IComponentRoute) => {
componentData[route.route] = [];
route.detailView.forEach((routeChild: JSX.Element, index: number) => {
if (routeChild && routeChild.props && routeChild.props.slot === ComponentViewSlot.detailExample) {
componentData[route.route] = routeChild.props.data;
}
});
});
return componentData;
}
private getComponentName = (currentPath?: string): string => {
const matchedPath: RegExpMatchArray = currentPath
? currentPath.match(/([a-z\d\-]+)(\/*)$/i)
@ -302,7 +327,7 @@ class Site extends React.Component<ISiteProps & IManagedClasses<ISiteManagedClas
/>
</Row>
<div className={this.props.managedClasses.site_canvasContent}>
<ComponentView>
<ComponentView {...{ viewType: this.state.componentView }}>
{this.renderChildrenBySlot(this, ShellSlot.canvas)}
{this.renderComponentByRoute(route)}
</ComponentView>
@ -316,7 +341,7 @@ class Site extends React.Component<ISiteProps & IManagedClasses<ISiteManagedClas
jssStyleSheet={paneStyleSheet}
minWidth={324}
>
{this.generateForm(route.component, route.schema, route.route)}
{this.generateForm(route.exampleView, route.schema, route.route)}
</Pane>
</Row>
);
@ -329,7 +354,7 @@ class Site extends React.Component<ISiteProps & IManagedClasses<ISiteManagedClas
activeFramework={this.props.activeFramework}
activeSchema={schema}
activeComponentName={this.state.componentName}
activeFormData={this.state.componentData[this.state.currentPath][this.state.activeComponentIndex]}
activeFormData={this.getCurrentComponentData()}
childOptions={this.props.formChildOptions}
frameworks={Array.isArray(this.props.frameworks) ? this.props.frameworks : [this.props.frameworks]}
onToggleView={this.handleToggleDevToolsView}
@ -338,15 +363,34 @@ class Site extends React.Component<ISiteProps & IManagedClasses<ISiteManagedClas
}
}
private getCurrentComponentData(): any {
if (this.state.componentView === ComponentViewTypes.examples) {
return this.state.componentData[this.state.currentPath][this.state.activeComponentIndex];
} else if (this.state.componentView === ComponentViewTypes.detail) {
return this.state.detailViewComponentData[this.state.currentPath];
}
}
private handleComponentDataChange = (data: any): void => {
const currentPath: string = this.getCurrentPath();
const componentData: IComponentData = Object.assign({}, this.state.componentData);
componentData[currentPath][this.state.activeComponentIndex] = data;
this.setState({
componentData,
currentPath
});
if (this.state.componentView === ComponentViewTypes.examples) {
const componentData: IComponentData = Object.assign({}, this.state.componentData);
componentData[currentPath][this.state.activeComponentIndex] = data;
this.setState({
componentData,
currentPath
});
} else if (this.state.componentView === ComponentViewTypes.detail) {
const detailViewComponentData: IComponentData = Object.assign({}, this.state.detailViewComponentData);
detailViewComponentData[currentPath] = data;
this.setState({
detailViewComponentData,
currentPath
});
}
}
private handleToggleDevToolsView = (): void => {
@ -363,11 +407,15 @@ class Site extends React.Component<ISiteProps & IManagedClasses<ISiteManagedClas
private generateForm(component: JSX.Element[], schema: any, route: string): JSX.Element {
if (component && schema) {
const componentData: any = this.state.componentView === ComponentViewTypes.examples
? Object.assign({}, this.state.componentData[route][this.state.activeComponentIndex])
: Object.assign({}, this.state.detailViewComponentData[route]);
return (
<Form
className={this.props.managedClasses.site_paneForm}
schema={schema}
data={Object.assign({}, this.state.componentData[route][this.state.activeComponentIndex])}
data={componentData}
onChange={this.handleComponentDataChange.bind(route)}
childOptions={this.props.formChildOptions}
/>
@ -376,9 +424,9 @@ class Site extends React.Component<ISiteProps & IManagedClasses<ISiteManagedClas
}
private renderComponentByRoute(route: IComponentRoute): JSX.Element[] {
if (route.component) {
return route.component.map((componentItem: JSX.Element, index: number) => {
if (route.componentMapping) {
if (route.exampleView && this.state.componentView === ComponentViewTypes.examples) {
return route.exampleView.map((componentItem: JSX.Element, index: number) => {
if (route.componentMapping && componentItem.props && componentItem.props.slot === ComponentViewSlot.example) {
return (
<ComponentWrapper
key={index}
@ -392,9 +440,45 @@ class Site extends React.Component<ISiteProps & IManagedClasses<ISiteManagedClas
);
}
});
} else if (route.detailView && this.state.componentView === ComponentViewTypes.detail) {
return route.detailView.map((componentItem: JSX.Element, index: number) => {
if (route.componentMapping) {
return (
<React.Fragment key={index}>
{this.renderDetailViewComponent(componentItem, index, route)}
{this.renderDetailViewDocumentation(componentItem)}
</React.Fragment>
);
}
});
}
}
private renderDetailViewComponent(component: JSX.Element, index: number, route: IComponentRoute): JSX.Element {
if (component && component.props && component.props.slot === ComponentViewSlot.detailExample) {
return (
<ComponentWrapper
key={index}
index={index}
designSystem={component.props.designSystem}
active={true}
>
<route.componentMapping {...this.state.detailViewComponentData[route.route]} />
</ComponentWrapper>
);
}
return null;
}
private renderDetailViewDocumentation(component: JSX.Element): JSX.Element {
if (component && component.props && component.props.slot === ComponentViewSlot.detailDocumentation) {
return component;
}
return null;
}
private handleComponentClick = (activeIndex: number): void => {
this.setState({
activeComponentIndex: activeIndex
@ -446,12 +530,16 @@ class Site extends React.Component<ISiteProps & IManagedClasses<ISiteManagedClas
private getCurrentRoute(item: JSX.Element, slot: SiteSlot, baseRoute: string, currentRoutes: IComponentRoute[]): IComponentRoute[] {
const currentRoute: IComponentRoute[] = currentRoutes;
const itemRoute: string = `${baseRoute}${item.props.name}/`;
const slotItems: JSX.Element[] = this.renderChildrenBySlot(item, ShellSlot.canvas);
const detailDocumentationSlotItems: JSX.Element[] = this.renderChildrenBySlot(item, ComponentViewSlot.detailDocumentation);
const detailExampleSlotItems: JSX.Element[] = this.renderChildrenBySlot(item, ComponentViewSlot.detailExample);
const detailSlotItems: JSX.Element[] = detailExampleSlotItems.concat(detailDocumentationSlotItems);
const exampleSlotItems: JSX.Element[] = this.renderChildrenBySlot(item, ComponentViewSlot.example);
if (slotItems && slotItems.length > 0) {
if (exampleSlotItems && exampleSlotItems.length > 0) {
currentRoute.push({
route: this.convertToHyphenated(itemRoute),
component: slotItems,
exampleView: exampleSlotItems,
detailView: detailSlotItems,
schema: item.props.schema,
componentMapping: item.props.component
});
@ -471,11 +559,13 @@ class Site extends React.Component<ISiteProps & IManagedClasses<ISiteManagedClas
}
private renderChildrenBySlot(component: any, slot: string): JSX.Element[] {
return React.Children.map(component.props.children, (child: JSX.Element, index: number) => {
if (child.props && child.props.slot === slot) {
return child;
}
});
if (component && component.props) {
return React.Children.map(component.props.children, (child: JSX.Element, index: number) => {
if (child && child.props && child.props.slot === slot) {
return child;
}
});
}
}
private renderPaneCollapseToggle(): JSX.Element {
@ -510,7 +600,9 @@ class Site extends React.Component<ISiteProps & IManagedClasses<ISiteManagedClas
const tocItems: any[] = Array.isArray(items) ? items : [items];
tocItems.forEach((item: JSX.Element) => {
if (item.props.slot === slot && ((collapsed && this.renderTocItemCategoryIcon(item)) || !collapsed)) {
const isInSlot: boolean = item && item.props && item.props.slot === slot;
if (isInSlot && ((collapsed && this.renderTocItemCategoryIcon(item)) || !collapsed)) {
categoryItems.push(item);
}
});
@ -608,12 +700,12 @@ class Site extends React.Component<ISiteProps & IManagedClasses<ISiteManagedClas
private renderTocItemCategoryIcon(item: JSX.Element): JSX.Element {
if (Array.isArray(item.props.children)) {
item.props.children.forEach((childElement: JSX.Element) => {
if (childElement.props.slot === SiteSlot.categoryIcon) {
if (childElement && childElement.props && childElement.props.slot === SiteSlot.categoryIcon) {
return childElement;
}
});
} else {
if (item.props.children.props.slot === SiteSlot.categoryIcon) {
if (item.props.children.props && item.props.children.props.slot === SiteSlot.categoryIcon) {
return item;
}
}
@ -623,16 +715,20 @@ class Site extends React.Component<ISiteProps & IManagedClasses<ISiteManagedClas
private hasCanvasContent(item: JSX.Element): boolean {
let hasCanvasContent: boolean = false;
const slot: string = ShellSlot.canvas;
const exampleSlot: string = ComponentViewSlot.example;
const detailExampleSlot: string = ComponentViewSlot.detailExample;
const detailDocumentationSlot: string = ComponentViewSlot.detailDocumentation;
if (item.props.children) {
if (Array.isArray(item.props.children)) {
item.props.children.forEach((child: JSX.Element) => {
hasCanvasContent = child.props.slot === slot;
});
} else {
hasCanvasContent = item.props.children.props && item.props.children.props.slot === slot;
}
const itemChildren: JSX.Element[] = Array.isArray(item.props.children) ? item.props.children : [item.props.children];
itemChildren.forEach((child: JSX.Element): void => {
hasCanvasContent = child && child.props
? child.props.slot === exampleSlot
|| child.props.slot === detailExampleSlot
|| child.props.slot === detailDocumentationSlot
: false;
});
}
return hasCanvasContent;
@ -644,4 +740,4 @@ class Site extends React.Component<ISiteProps & IManagedClasses<ISiteManagedClas
}
export default manageJss(styles)(Site);
export { SiteMenu, SiteMenuItem, SiteCategory, SiteCategoryIcon, SiteCategoryItem };
export { SiteMenu, SiteMenuItem, SiteCategory, SiteCategoryDocumentation, SiteCategoryIcon, SiteCategoryItem };

Просмотреть файл

@ -0,0 +1,15 @@
import * as React from "react";
import { SiteCategoryItem } from "../";
import { DesignSystemProvider } from "@microsoft/fast-jss-manager-react";
export default function componentDetailExampleFactory<T>(example?: any, designSystem?: T): JSX.Element {
if (example) {
return (
<SiteCategoryItem
slot={"canvas-detail-view-example"}
data={example}
designSystem={designSystem ? designSystem : void 0}
/>
);
}
}

Просмотреть файл

@ -0,0 +1,10 @@
import * as React from "react";
import { SiteCategoryDocumentation } from "../";
export default function componentExampleFactory(documentation?: JSX.Element): JSX.Element {
return (
<SiteCategoryDocumentation slot={"canvas-detail-view-documentation"}>
{documentation}
</SiteCategoryDocumentation>
);
}

Просмотреть файл

@ -5,7 +5,12 @@ import { DesignSystemProvider } from "@microsoft/fast-jss-manager-react";
export default function componentExampleFactory<T>(examples: any, componentExample: string, designSystem?: T): JSX.Element[] {
return examples[componentExample].data.map((componentExampleData: any, index: number) => {
return (
<SiteCategoryItem key={index} slot={"canvas"} data={componentExampleData} designSystem={designSystem ? designSystem : void 0} />
<SiteCategoryItem
key={index}
slot={"canvas-example-view"}
data={componentExampleData}
designSystem={designSystem ? designSystem : void 0}
/>
);
});
}

Просмотреть файл

@ -1,5 +1,7 @@
import * as React from "react";
import componentDetailExampleFactory from "./component-detail-example-factory";
import componentExampleFactory from "./component-example-factory";
import componentDocumentationFactory from "./component-documentation-factory";
import { SiteCategory } from "../";
export default function componentFactory<T>(examples: any, designSystem?: T): JSX.Element[] {
@ -12,7 +14,9 @@ export default function componentFactory<T>(examples: any, designSystem?: T): JS
schema={examples[exampleKey].schema}
component={examples[exampleKey].component}
>
{componentDetailExampleFactory<T>(examples[exampleKey].detailData, designSystem)}
{componentExampleFactory<T>(examples, exampleKey, designSystem)}
{componentDocumentationFactory(examples[exampleKey].documentation)}
</SiteCategory>
);
});

Просмотреть файл

@ -1,6 +1,12 @@
import componentDocumentationFactory from "./component-documentation-factory";
export { componentDocumentationFactory };
import componentFactory from "./component-factory";
export { componentFactory };
import componentDetailExampleFactory from "./component-detail-example-factory";
export { componentDetailExampleFactory };
import componentExampleFactory from "./component-example-factory";
export { componentExampleFactory };

Просмотреть файл

@ -2,6 +2,7 @@ const webpack = require('webpack');
const path = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');
const ForkTsCheckerWebpackPlugin = require('fork-ts-checker-webpack-plugin');
const WebpackShellPlugin = require('webpack-shell-plugin');
module.exports = {
devtool: 'inline-source-map',
@ -38,6 +39,11 @@ module.exports = {
new HtmlWebpackPlugin({
title: 'Test',
template: path.resolve(__dirname, './app/index.html')
}),
new WebpackShellPlugin({
onBuildStart: [
`npm run convert:readme`
]
})
],
devServer: {

4884
packages/fast-form-generator-react/package-lock.json сгенерированный

Разница между файлами не показана из-за своего большого размера Загрузить разницу

108
packages/fast-glyphs-msft/package-lock.json сгенерированный
Просмотреть файл

@ -17,7 +17,7 @@
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
"integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
"requires": {
"color-convert": "^1.9.0"
"color-convert": "1.9.1"
}
},
"argparse": {
@ -25,7 +25,7 @@
"resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
"integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
"requires": {
"sprintf-js": "~1.0.2"
"sprintf-js": "1.0.3"
}
},
"arrify": {
@ -38,9 +38,9 @@
"resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz",
"integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=",
"requires": {
"chalk": "^1.1.3",
"esutils": "^2.0.2",
"js-tokens": "^3.0.2"
"chalk": "1.1.3",
"esutils": "2.0.2",
"js-tokens": "3.0.2"
},
"dependencies": {
"ansi-styles": {
@ -53,11 +53,11 @@
"resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
"integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
"requires": {
"ansi-styles": "^2.2.1",
"escape-string-regexp": "^1.0.2",
"has-ansi": "^2.0.0",
"strip-ansi": "^3.0.0",
"supports-color": "^2.0.0"
"ansi-styles": "2.2.1",
"escape-string-regexp": "1.0.5",
"has-ansi": "2.0.0",
"strip-ansi": "3.0.1",
"supports-color": "2.0.0"
}
},
"supports-color": {
@ -77,7 +77,7 @@
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
"requires": {
"balanced-match": "^1.0.0",
"balanced-match": "1.0.0",
"concat-map": "0.0.1"
}
},
@ -96,9 +96,9 @@
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz",
"integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==",
"requires": {
"ansi-styles": "^3.2.1",
"escape-string-regexp": "^1.0.5",
"supports-color": "^5.3.0"
"ansi-styles": "3.2.1",
"escape-string-regexp": "1.0.5",
"supports-color": "5.4.0"
}
},
"color-convert": {
@ -106,7 +106,7 @@
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.1.tgz",
"integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==",
"requires": {
"color-name": "^1.1.1"
"color-name": "1.1.3"
}
},
"color-name": {
@ -154,12 +154,12 @@
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz",
"integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==",
"requires": {
"fs.realpath": "^1.0.0",
"inflight": "^1.0.4",
"inherits": "2",
"minimatch": "^3.0.4",
"once": "^1.3.0",
"path-is-absolute": "^1.0.0"
"fs.realpath": "1.0.0",
"inflight": "1.0.6",
"inherits": "2.0.3",
"minimatch": "3.0.4",
"once": "1.4.0",
"path-is-absolute": "1.0.1"
}
},
"has-ansi": {
@ -167,7 +167,7 @@
"resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
"integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
"requires": {
"ansi-regex": "^2.0.0"
"ansi-regex": "2.1.1"
}
},
"has-flag": {
@ -180,8 +180,8 @@
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
"integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
"requires": {
"once": "^1.3.0",
"wrappy": "1"
"once": "1.4.0",
"wrappy": "1.0.2"
}
},
"inherits": {
@ -199,8 +199,8 @@
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.11.0.tgz",
"integrity": "sha512-saJstZWv7oNeOyBh3+Dx1qWzhW0+e6/8eDzo7p5rDFqxntSztloLtuKu+Ejhtq82jsilwOIZYsCz+lIjthg1Hw==",
"requires": {
"argparse": "^1.0.7",
"esprima": "^4.0.0"
"argparse": "1.0.10",
"esprima": "4.0.0"
}
},
"make-error": {
@ -213,7 +213,7 @@
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
"integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
"requires": {
"brace-expansion": "^1.1.7"
"brace-expansion": "1.1.11"
}
},
"minimist": {
@ -241,7 +241,7 @@
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
"integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
"requires": {
"wrappy": "1"
"wrappy": "1.0.2"
}
},
"path-is-absolute": {
@ -259,7 +259,7 @@
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.7.1.tgz",
"integrity": "sha512-c7rwLofp8g1U+h1KNyHL/jicrKg1Ek4q+Lr33AL65uZTinUZHe30D5HlyN5V9NW0JX1D5dXQ4jqW5l7Sy/kGfw==",
"requires": {
"path-parse": "^1.0.5"
"path-parse": "1.0.5"
}
},
"semver": {
@ -277,8 +277,8 @@
"resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.6.tgz",
"integrity": "sha512-N4KXEz7jcKqPf2b2vZF11lQIz9W5ZMuUcIOGj243lduidkf2fjkVKJS9vNxVWn3u/uxX38AcE8U9nnH9FPcq+g==",
"requires": {
"buffer-from": "^1.0.0",
"source-map": "^0.6.0"
"buffer-from": "1.0.0",
"source-map": "0.6.1"
}
},
"sprintf-js": {
@ -291,7 +291,7 @@
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
"integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
"requires": {
"ansi-regex": "^2.0.0"
"ansi-regex": "2.1.1"
}
},
"supports-color": {
@ -299,7 +299,7 @@
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz",
"integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==",
"requires": {
"has-flag": "^3.0.0"
"has-flag": "3.0.0"
}
},
"ts-node": {
@ -307,14 +307,14 @@
"resolved": "https://registry.npmjs.org/ts-node/-/ts-node-5.0.1.tgz",
"integrity": "sha512-XK7QmDcNHVmZkVtkiwNDWiERRHPyU8nBqZB1+iv2UhOG0q3RQ9HsZ2CMqISlFbxjrYFGfG2mX7bW4dAyxBVzUw==",
"requires": {
"arrify": "^1.0.0",
"chalk": "^2.3.0",
"diff": "^3.1.0",
"make-error": "^1.1.1",
"minimist": "^1.2.0",
"mkdirp": "^0.5.1",
"source-map-support": "^0.5.3",
"yn": "^2.0.0"
"arrify": "1.0.1",
"chalk": "2.4.1",
"diff": "3.5.0",
"make-error": "1.3.4",
"minimist": "1.2.0",
"mkdirp": "0.5.1",
"source-map-support": "0.5.6",
"yn": "2.0.0"
}
},
"tslib": {
@ -327,18 +327,18 @@
"resolved": "https://registry.npmjs.org/tslint/-/tslint-5.10.0.tgz",
"integrity": "sha1-EeJrzLiK+gLdDZlWyuPUVAtfVMM=",
"requires": {
"babel-code-frame": "^6.22.0",
"builtin-modules": "^1.1.1",
"chalk": "^2.3.0",
"commander": "^2.12.1",
"diff": "^3.2.0",
"glob": "^7.1.1",
"js-yaml": "^3.7.0",
"minimatch": "^3.0.4",
"resolve": "^1.3.2",
"semver": "^5.3.0",
"tslib": "^1.8.0",
"tsutils": "^2.12.1"
"babel-code-frame": "6.26.0",
"builtin-modules": "1.1.1",
"chalk": "2.4.1",
"commander": "2.15.1",
"diff": "3.5.0",
"glob": "7.1.2",
"js-yaml": "3.11.0",
"minimatch": "3.0.4",
"resolve": "1.7.1",
"semver": "5.5.0",
"tslib": "1.9.1",
"tsutils": "2.27.0"
}
},
"tsutils": {
@ -346,7 +346,7 @@
"resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.27.0.tgz",
"integrity": "sha512-JcyX25oM9pFcb3zh60OqG1St8p/uSqC5Bgipdo3ieacB/Ao4dPhm7hAtKT9NrEu23CyYrrgJPV3CqYfo+/+T4w==",
"requires": {
"tslib": "^1.8.1"
"tslib": "1.9.1"
}
},
"typescript": {

2260
packages/fast-jest-snapshots-react/package-lock.json сгенерированный

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Просмотреть файл

@ -20,10 +20,20 @@ export interface ISnapshotTestSuite<T> {
*/
component: React.ComponentClass<T>;
/**
* The detail view component data
*/
detailData: T;
/**
* An array of prop instances for the component
*/
data: T[];
/**
* Documentation for the component
*/
documentation?: JSX.Element;
}
/**

2590
packages/fast-jss-manager-angular/package-lock.json сгенерированный

Разница между файлами не показана из-за своего большого размера Загрузить разницу

2830
packages/fast-jss-manager-react/package-lock.json сгенерированный

Разница между файлами не показана из-за своего большого размера Загрузить разницу

88
packages/fast-jss-manager/package-lock.json сгенерированный
Просмотреть файл

@ -17,7 +17,7 @@
"resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
"integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
"requires": {
"sprintf-js": "~1.0.2"
"sprintf-js": "1.0.3"
}
},
"babel-code-frame": {
@ -25,9 +25,9 @@
"resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz",
"integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=",
"requires": {
"chalk": "^1.1.3",
"esutils": "^2.0.2",
"js-tokens": "^3.0.2"
"chalk": "1.1.3",
"esutils": "2.0.2",
"js-tokens": "3.0.2"
},
"dependencies": {
"chalk": {
@ -35,11 +35,11 @@
"resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
"integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
"requires": {
"ansi-styles": "^2.2.1",
"escape-string-regexp": "^1.0.2",
"has-ansi": "^2.0.0",
"strip-ansi": "^3.0.0",
"supports-color": "^2.0.0"
"ansi-styles": "2.2.1",
"escape-string-regexp": "1.0.5",
"has-ansi": "2.0.0",
"strip-ansi": "3.0.1",
"supports-color": "2.0.0"
}
}
}
@ -54,7 +54,7 @@
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
"requires": {
"balanced-match": "^1.0.0",
"balanced-match": "1.0.0",
"concat-map": "0.0.1"
}
},
@ -68,9 +68,9 @@
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz",
"integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==",
"requires": {
"ansi-styles": "^3.2.1",
"escape-string-regexp": "^1.0.5",
"supports-color": "^5.3.0"
"ansi-styles": "3.2.1",
"escape-string-regexp": "1.0.5",
"supports-color": "5.4.0"
},
"dependencies": {
"ansi-styles": {
@ -78,7 +78,7 @@
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
"integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
"requires": {
"color-convert": "^1.9.0"
"color-convert": "1.9.1"
}
},
"supports-color": {
@ -86,7 +86,7 @@
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz",
"integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==",
"requires": {
"has-flag": "^3.0.0"
"has-flag": "3.0.0"
}
}
}
@ -96,7 +96,7 @@
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.1.tgz",
"integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==",
"requires": {
"color-name": "^1.1.1"
"color-name": "1.1.3"
}
},
"color-name": {
@ -149,12 +149,12 @@
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz",
"integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==",
"requires": {
"fs.realpath": "^1.0.0",
"inflight": "^1.0.4",
"inherits": "2",
"minimatch": "^3.0.4",
"once": "^1.3.0",
"path-is-absolute": "^1.0.0"
"fs.realpath": "1.0.0",
"inflight": "1.0.6",
"inherits": "2.0.3",
"minimatch": "3.0.4",
"once": "1.4.0",
"path-is-absolute": "1.0.1"
}
},
"has-ansi": {
@ -162,7 +162,7 @@
"resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
"integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
"requires": {
"ansi-regex": "^2.0.0"
"ansi-regex": "2.1.1"
}
},
"has-flag": {
@ -175,8 +175,8 @@
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
"integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
"requires": {
"once": "^1.3.0",
"wrappy": "1"
"once": "1.4.0",
"wrappy": "1.0.2"
}
},
"inherits": {
@ -194,8 +194,8 @@
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.11.0.tgz",
"integrity": "sha512-saJstZWv7oNeOyBh3+Dx1qWzhW0+e6/8eDzo7p5rDFqxntSztloLtuKu+Ejhtq82jsilwOIZYsCz+lIjthg1Hw==",
"requires": {
"argparse": "^1.0.7",
"esprima": "^4.0.0"
"argparse": "1.0.10",
"esprima": "4.0.0"
}
},
"minimatch": {
@ -203,7 +203,7 @@
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
"integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
"requires": {
"brace-expansion": "^1.1.7"
"brace-expansion": "1.1.11"
}
},
"once": {
@ -211,7 +211,7 @@
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
"integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
"requires": {
"wrappy": "1"
"wrappy": "1.0.2"
}
},
"path-is-absolute": {
@ -229,7 +229,7 @@
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.7.1.tgz",
"integrity": "sha512-c7rwLofp8g1U+h1KNyHL/jicrKg1Ek4q+Lr33AL65uZTinUZHe30D5HlyN5V9NW0JX1D5dXQ4jqW5l7Sy/kGfw==",
"requires": {
"path-parse": "^1.0.5"
"path-parse": "1.0.5"
}
},
"semver": {
@ -247,7 +247,7 @@
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
"integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
"requires": {
"ansi-regex": "^2.0.0"
"ansi-regex": "2.1.1"
}
},
"supports-color": {
@ -265,18 +265,18 @@
"resolved": "https://registry.npmjs.org/tslint/-/tslint-5.10.0.tgz",
"integrity": "sha1-EeJrzLiK+gLdDZlWyuPUVAtfVMM=",
"requires": {
"babel-code-frame": "^6.22.0",
"builtin-modules": "^1.1.1",
"chalk": "^2.3.0",
"commander": "^2.12.1",
"diff": "^3.2.0",
"glob": "^7.1.1",
"js-yaml": "^3.7.0",
"minimatch": "^3.0.4",
"resolve": "^1.3.2",
"semver": "^5.3.0",
"tslib": "^1.8.0",
"tsutils": "^2.12.1"
"babel-code-frame": "6.26.0",
"builtin-modules": "1.1.1",
"chalk": "2.4.1",
"commander": "2.15.1",
"diff": "3.5.0",
"glob": "7.1.2",
"js-yaml": "3.11.0",
"minimatch": "3.0.4",
"resolve": "1.7.1",
"semver": "5.5.0",
"tslib": "1.9.1",
"tsutils": "2.27.0"
}
},
"tsutils": {
@ -284,7 +284,7 @@
"resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.27.0.tgz",
"integrity": "sha512-JcyX25oM9pFcb3zh60OqG1St8p/uSqC5Bgipdo3ieacB/Ao4dPhm7hAtKT9NrEu23CyYrrgJPV3CqYfo+/+T4w==",
"requires": {
"tslib": "^1.8.1"
"tslib": "1.9.1"
}
},
"typescript": {

2624
packages/fast-jss-utilities/package-lock.json сгенерированный

Разница между файлами не показана из-за своего большого размера Загрузить разницу

2588
packages/fast-markdown-msft-react/package-lock.json сгенерированный

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Просмотреть файл

@ -18,70 +18,70 @@ describe("Convert markdown to HTML", function(): void {
const markdown: string = "https://test.com";
expect(md.render(markdown).replace(newlineRegex, "")).toBe(
/* tslint:disable-next-line */
"<Typography tag=\"p\" typeLevel={2}><Hypertext text=\"https://test.com\" href=\"https://test.com\" target=\"_blank\">https://test.com</Hypertext></Typography>"
"<Typography tag=\"p\" typeLevel={7}><Hypertext text=\"https://test.com\" href=\"https://test.com\" target=\"_blank\">https://test.com</Hypertext></Typography>"
);
});
test("should convert a (c) to a copywrite symbol", function(): void {
const markdown: string = "(c)";
expect(md.render(markdown).replace(newlineRegex, "")).toBe(
"<Typography tag=\"p\" typeLevel={2}>©</Typography>"
"<Typography tag=\"p\" typeLevel={7}>©</Typography>"
);
});
test("should allow HTML to be in markdown", function(): void {
const markdown: string = "<a href=\"#\">hello world</a>";
expect(md.render(markdown).replace(newlineRegex, "")).toBe(
`<Typography tag=\"p\" typeLevel={2}><a href="#">hello world</a></Typography>`
`<Typography tag=\"p\" typeLevel={7}><a href="#">hello world</a></Typography>`
);
});
test("should convert a markdown link to a FAST MSFT hypertext", function(): void {
const markdown: string = "[Test](/test)";
expect(md.render(markdown).replace(newlineRegex, "")).toBe(
"<Typography tag=\"p\" typeLevel={2}><Hypertext text=\"Test\" href=\"/test\">Test</Hypertext></Typography>"
"<Typography tag=\"p\" typeLevel={7}><Hypertext text=\"Test\" href=\"/test\">Test</Hypertext></Typography>"
);
});
test("should convert a markdown unordered bullet list to a list", function(): void {
const markdown: string = "* list item";
expect(md.render(markdown).replace(newlineRegex, "")).toBe(
"<ul><li><Typography tag=\"p\" typeLevel={2}>list item</Typography></li></ul>"
"<ul><li><Typography tag=\"p\" typeLevel={7}>list item</Typography></li></ul>"
);
});
test("should convert a markdown ordered list to a list", function(): void {
const markdown: string = "1. list item";
expect(md.render(markdown).replace(newlineRegex, "")).toBe(
"<ol><li><Typography tag=\"p\" typeLevel={2}>list item</Typography></li></ol>"
"<ol><li><Typography tag=\"p\" typeLevel={7}>list item</Typography></li></ol>"
);
});
test("should convert a markdown heading to a FAST MSFT heading", function(): void {
const markdown: string = "# Hello world";
expect(md.render(markdown).replace(newlineRegex, "")).toBe(
"<Heading id=\"hello-world\" tag=\"h1\" typeLevel={3}>Hello world</Heading>"
"<Heading id=\"hello-world\" tag=\"h1\" level={3}>Hello world</Heading>"
);
});
test("should convert any code snippets into a PrismCode react component", function(): void {
const markdown: string = "```\n{}\n```";
expect(md.render(markdown).replace(newlineRegex, "")).toBe(
`<PrismCode>{\"{}\\n\"}</PrismCode>`
`<pre><code>{\"{}\\n\"}</code></pre>`
);
});
test("should convert any code snippets with a language specified into a PrismCode react component", function(): void {
const markdown: string = "```jsx\n{}\n```";
expect(md.render(markdown).replace(newlineRegex, "")).toBe(
`<PrismCode className="language-jsx">{\"{}\\n\"}</PrismCode>`
`<pre className="language-jsx"><code>{\"{}\\n\"}</code></pre>`
);
});
test("should convert any inline text with {, }, < and > into their HTML codes", function(): void {
const markdown: string = "some text with { and } and < and >";
expect(md.render(markdown).replace(newlineRegex, "")).toBe(
`<Typography tag=\"p\" typeLevel={2}>some text with &#123; and &#125; and &#60; and &#62;</Typography>`
`<Typography tag=\"p\" typeLevel={7}>some text with &#123; and &#125; and &#60; and &#62;</Typography>`
);
});

Просмотреть файл

@ -26,19 +26,19 @@ class FastMarkdownIt {
constructor(md: MarkdownIt) {
md.core.ruler.push("fast", (new CreateRule(md) as any));
md.renderer.rules.paragraph_open = function(): string {
return `<Typography tag="p" typeLevel={2}>`;
return `<Typography tag="p" typeLevel={7}>`;
};
md.renderer.rules.heading_open = function(tokens: ITokens<IToken>, idx: number): string {
const id: string = tokens[idx + 1].children[0].content.toLowerCase().replace(/\s/g, "-").replace(/[^a-z\-]/g, "");
return `<Heading id="${id}" tag="${tokens[idx].tag}" typeLevel={${parseInt(tokens[idx].tag.charAt(1), 10) + 2}}>`;
return `<Heading id="${id}" tag="${tokens[idx].tag}" level={${parseInt(tokens[idx].tag.charAt(1), 10) + 2}}>`;
};
md.renderer.rules.text = (tokens: ITokens<IToken>, idx: number): string => {
return this.replaceSpecialCharacters(tokens[idx].content);
};
md.renderer.rules.fence = function(tokens: ITokens<IToken>, idx: number): string {
let codeSnippet: string = `<PrismCode${tokens[idx].info ? ` className="language-${tokens[idx].info}"` : ""}>`;
let codeSnippet: string = `<pre${tokens[idx].info ? ` className="language-${tokens[idx].info}"` : ""}><code>`;
codeSnippet += `{${JSON.stringify(tokens[idx].content, null, 2)}}`;
codeSnippet += `</PrismCode>`;
codeSnippet += `</code></pre>`;
return codeSnippet;
};

Просмотреть файл

@ -1,7 +1,7 @@
{
"compilerOptions": {
"moduleResolution": "node",
"module": "ES6",
"module": "commonjs",
"target": "ES6",
"baseUrl": ".",
"declaration": true,

2642
packages/fast-permutator/package-lock.json сгенерированный

Разница между файлами не показана из-за своего большого размера Загрузить разницу

90
packages/fast-tslint-rules/package-lock.json сгенерированный
Просмотреть файл

@ -17,7 +17,7 @@
"resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
"integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
"requires": {
"sprintf-js": "~1.0.2"
"sprintf-js": "1.0.3"
}
},
"babel-code-frame": {
@ -25,9 +25,9 @@
"resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz",
"integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=",
"requires": {
"chalk": "^1.1.3",
"esutils": "^2.0.2",
"js-tokens": "^3.0.2"
"chalk": "1.1.3",
"esutils": "2.0.2",
"js-tokens": "3.0.2"
},
"dependencies": {
"chalk": {
@ -35,11 +35,11 @@
"resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
"integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
"requires": {
"ansi-styles": "^2.2.1",
"escape-string-regexp": "^1.0.2",
"has-ansi": "^2.0.0",
"strip-ansi": "^3.0.0",
"supports-color": "^2.0.0"
"ansi-styles": "2.2.1",
"escape-string-regexp": "1.0.5",
"has-ansi": "2.0.0",
"strip-ansi": "3.0.1",
"supports-color": "2.0.0"
}
}
}
@ -54,7 +54,7 @@
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
"requires": {
"balanced-match": "^1.0.0",
"balanced-match": "1.0.0",
"concat-map": "0.0.1"
}
},
@ -68,9 +68,9 @@
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz",
"integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==",
"requires": {
"ansi-styles": "^3.2.1",
"escape-string-regexp": "^1.0.5",
"supports-color": "^5.3.0"
"ansi-styles": "3.2.1",
"escape-string-regexp": "1.0.5",
"supports-color": "5.4.0"
},
"dependencies": {
"ansi-styles": {
@ -78,7 +78,7 @@
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
"integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
"requires": {
"color-convert": "^1.9.0"
"color-convert": "1.9.1"
}
},
"supports-color": {
@ -86,7 +86,7 @@
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz",
"integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==",
"requires": {
"has-flag": "^3.0.0"
"has-flag": "3.0.0"
}
}
}
@ -96,7 +96,7 @@
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.1.tgz",
"integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==",
"requires": {
"color-name": "^1.1.1"
"color-name": "1.1.3"
}
},
"color-name": {
@ -144,12 +144,12 @@
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz",
"integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==",
"requires": {
"fs.realpath": "^1.0.0",
"inflight": "^1.0.4",
"inherits": "2",
"minimatch": "^3.0.4",
"once": "^1.3.0",
"path-is-absolute": "^1.0.0"
"fs.realpath": "1.0.0",
"inflight": "1.0.6",
"inherits": "2.0.3",
"minimatch": "3.0.4",
"once": "1.4.0",
"path-is-absolute": "1.0.1"
}
},
"has-ansi": {
@ -157,7 +157,7 @@
"resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
"integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
"requires": {
"ansi-regex": "^2.0.0"
"ansi-regex": "2.1.1"
}
},
"has-flag": {
@ -170,8 +170,8 @@
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
"integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
"requires": {
"once": "^1.3.0",
"wrappy": "1"
"once": "1.4.0",
"wrappy": "1.0.2"
}
},
"inherits": {
@ -189,8 +189,8 @@
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.11.0.tgz",
"integrity": "sha512-saJstZWv7oNeOyBh3+Dx1qWzhW0+e6/8eDzo7p5rDFqxntSztloLtuKu+Ejhtq82jsilwOIZYsCz+lIjthg1Hw==",
"requires": {
"argparse": "^1.0.7",
"esprima": "^4.0.0"
"argparse": "1.0.10",
"esprima": "4.0.0"
}
},
"minimatch": {
@ -198,7 +198,7 @@
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
"integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
"requires": {
"brace-expansion": "^1.1.7"
"brace-expansion": "1.1.11"
}
},
"once": {
@ -206,7 +206,7 @@
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
"integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
"requires": {
"wrappy": "1"
"wrappy": "1.0.2"
}
},
"path-is-absolute": {
@ -224,7 +224,7 @@
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.7.1.tgz",
"integrity": "sha512-c7rwLofp8g1U+h1KNyHL/jicrKg1Ek4q+Lr33AL65uZTinUZHe30D5HlyN5V9NW0JX1D5dXQ4jqW5l7Sy/kGfw==",
"requires": {
"path-parse": "^1.0.5"
"path-parse": "1.0.5"
}
},
"semver": {
@ -242,7 +242,7 @@
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
"integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
"requires": {
"ansi-regex": "^2.0.0"
"ansi-regex": "2.1.1"
}
},
"supports-color": {
@ -260,18 +260,18 @@
"resolved": "https://registry.npmjs.org/tslint/-/tslint-5.10.0.tgz",
"integrity": "sha1-EeJrzLiK+gLdDZlWyuPUVAtfVMM=",
"requires": {
"babel-code-frame": "^6.22.0",
"builtin-modules": "^1.1.1",
"chalk": "^2.3.0",
"commander": "^2.12.1",
"diff": "^3.2.0",
"glob": "^7.1.1",
"js-yaml": "^3.7.0",
"minimatch": "^3.0.4",
"resolve": "^1.3.2",
"semver": "^5.3.0",
"tslib": "^1.8.0",
"tsutils": "^2.12.1"
"babel-code-frame": "6.26.0",
"builtin-modules": "1.1.1",
"chalk": "2.4.1",
"commander": "2.15.1",
"diff": "3.5.0",
"glob": "7.1.2",
"js-yaml": "3.11.0",
"minimatch": "3.0.4",
"resolve": "1.7.1",
"semver": "5.5.0",
"tslib": "1.9.1",
"tsutils": "2.27.0"
}
},
"tslint-react": {
@ -279,7 +279,7 @@
"resolved": "https://registry.npmjs.org/tslint-react/-/tslint-react-3.6.0.tgz",
"integrity": "sha512-AIv1QcsSnj7e9pFir6cJ6vIncTqxfqeFF3Lzh8SuuBljueYzEAtByuB6zMaD27BL0xhMEqsZ9s5eHuCONydjBw==",
"requires": {
"tsutils": "^2.13.1"
"tsutils": "2.27.0"
}
},
"tsutils": {
@ -287,7 +287,7 @@
"resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.27.0.tgz",
"integrity": "sha512-JcyX25oM9pFcb3zh60OqG1St8p/uSqC5Bgipdo3ieacB/Ao4dPhm7hAtKT9NrEu23CyYrrgJPV3CqYfo+/+T4w==",
"requires": {
"tslib": "^1.8.1"
"tslib": "1.9.1"
}
},
"typescript": {

4996
packages/fast-viewer-react/package-lock.json сгенерированный

Разница между файлами не показана из-за своего большого размера Загрузить разницу