1
0
Fork 0

Merge pull request #1 from freesewing-patterns/js

🚧 Moved from webpack to rollup
This commit is contained in:
Joost De Cock 2018-07-23 19:37:49 +02:00
parent 7f1bca7ed5
commit bb7d34cd70
13 changed files with 2999 additions and 4416 deletions

View file

@ -1,3 +0,0 @@
{
"presets": ["env"]
}

View file

@ -1,5 +1,5 @@
/** Pattern parts */ /** Pattern parts */
module.exports = { export var config = {
parts: [ parts: [
"back", "back",
"front", "front",

View file

@ -0,0 +1 @@
../freesewing/dist/freesewing.min.js

View file

@ -6,11 +6,12 @@
</head> </head>
<body> <body>
<div id="svg"></div> <div id="svg"></div>
<script type="text/javascript" src="dist/browser/bundle.js"></script> <script type="text/javascript" src="freesewing.js"></script>
<script type="text/javascript" src="dist/brian.min.js"></script>
<script type="text/javascript" src="theme-default.js"></script> <script type="text/javascript" src="theme-default.js"></script>
<script type="text/javascript" src="theme-designer.js"></script> <script type="text/javascript" src="theme-designer.js"></script>
<script> <script>
var pattern = freesewing_patterns_brian; var pattern = freesewing.patterns.brian;
pattern.settings.measurements = { pattern.settings.measurements = {
bicepsCircumference: 335, bicepsCircumference: 335,
centerBackNeckToWaist: 480, centerBackNeckToWaist: 480,
@ -23,33 +24,34 @@
shoulderToWrist: 700, shoulderToWrist: 700,
wristCircumference: 190 wristCircumference: 190
}; };
pattern.withPlugin(freesewing_theme_designer); console.log(freesewing);
pattern.withPlugin(freesewing_theme_default); //pattern.withPlugin(freesewing_theme_designer);
pattern.on('preRenderSvg', function(next) { //pattern.withPlugin(freesewing_theme_default);
this.attributes.add('viewBox', '-10 -10 400 600'); //pattern.on('preRenderSvg', function(next) {
next(); // this.attributes.add('viewBox', '-10 -10 400 600');
}); // next();
pattern.draft(); //});
document.getElementById("svg").innerHTML = pattern.render(); // pattern.draft();
function pointHover(evt) { // document.getElementById("svg").innerHTML = pattern.render();
var point = evt.target; // function pointHover(evt) {
var id = point.id; // var point = evt.target;
var cx = point.getAttribute('x'); // var id = point.id;
var cy = point.getAttribute('y'); // var cx = point.getAttribute('x');
var name = point.getAttribute('data-point'); // var cy = point.getAttribute('y');
var part = point.getAttribute('data-part'); // var name = point.getAttribute('data-point');
console.log(name+' ('+cx+', '+cy+') @ '+part); // var part = point.getAttribute('data-part');
var scale = 2; // console.log(name+' ('+cx+', '+cy+') @ '+part);
cx = cx-scale*cx; // var scale = 2;
cy = cy-scale*cy; // cx = cx-scale*cx;
point.setAttribute("transform", 'matrix('+scale+', 0, 0, '+scale+', '+cx+', '+cy+')'); // cy = cy-scale*cy;
pointUnhover(id); // point.setAttribute("transform", 'matrix('+scale+', 0, 0, '+scale+', '+cx+', '+cy+')');
} // pointUnhover(id);
function pointUnhover(id) { // }
setTimeout(function(){ // function pointUnhover(id) {
document.getElementById(id).removeAttribute("transform", ''); // setTimeout(function(){
}, 500); // document.getElementById(id).removeAttribute("transform", '');
} // }, 500);
// }
</script> </script>
</body> </body>
</html> </html>

File diff suppressed because it is too large Load diff

View file

@ -21,25 +21,30 @@
"scripts": { "scripts": {
"test": "echo \"Error: no test specified\" && exit 1", "test": "echo \"Error: no test specified\" && exit 1",
"clean": "rimraf dist", "clean": "rimraf dist",
"nodebuild": "babel src -d dist/node", "browserbuild": "rollup -c rollup.browser.js",
"browserbuild": "npx webpack-cli --config webpack.config.js", "nodebuild": "rollup -c rollup.node.js",
"watch": "npx webpack-cli --config webpack.config.js --watch", "build": "npm run clean && npm run browserbuild && npm run nodebuild"
"build": "npm run clean && npm run nodebuild && npm run browserbuild",
"dev": "webpack-dev-server --open"
}, },
"dependencies": { "dependencies": {
"@freesewing-plugins/macro-cutonfold": "0.2.1", "@freesewing-plugins/macro-cutonfold": "0.2.1",
"freesewing": "^0.3.1" "freesewing": "^0.3.3"
}, },
"devDependencies": { "devDependencies": {
"@babel/core": "7.0.0-beta.53", "babel-core": "^6.26.3",
"@babel/preset-env": "7.0.0-beta.53", "babel-eslint": "^8.2.6",
"babel-preset-env": "1.7.0", "eslint": "^5.2.0",
"eslint-config-prettier": "^2.9.0",
"eslint-plugin-prettier": "^2.6.2",
"husky": "^0.14.3",
"lint-staged": "^7.2.0",
"prettier": "^1.13.7",
"rimraf": "^2.6.2", "rimraf": "^2.6.2",
"babel-cli": "6.26.0", "rollup-plugin-babel": "^3.0.7",
"babel-loader": "8.0.0-beta.4", "rollup-plugin-commonjs": "^9.1.3",
"webpack": "4.16.0", "rollup-plugin-filesize": "^4.0.1",
"webpack-cli": "3.0.8" "rollup-plugin-json": "^3.0.0",
"rollup-plugin-node-resolve": "^3.3.0",
"rollup-plugin-terser": "^1.0.1"
}, },
"files": [ "files": [
"dist/*", "dist/*",

View file

@ -0,0 +1,31 @@
import { terser } from "rollup-plugin-terser";
import babel from 'rollup-plugin-babel';
import resolve from 'rollup-plugin-node-resolve';
import commonjs from "rollup-plugin-commonjs";
import json from "rollup-plugin-json";
import path from 'path';
export default {
input: 'src/index.js',
output: {
file: 'dist/brian.min.js',
format: 'iife',
name: 'freesewing.patterns.brian',
banner: `/**\n * Freesewing\n * (c) ${new Date().getFullYear()} Joost De Cock\n * @license MIT\n */`,
globals: {
freesewing: 'freesewing'
}
},
plugins: [
resolve({
browser: true
}),
json(),
babel({
exclude: 'node_modules/**'
}),
],
external: [
'freesewing', path.resolve('./node_modules/freesewing/dist/freesewing.min.js')
]
};

View file

@ -0,0 +1,22 @@
import filesize from 'rollup-plugin-filesize'
import { terser } from "rollup-plugin-terser";
import babel from 'rollup-plugin-babel';
import resolve from 'rollup-plugin-node-resolve';
export default {
input: 'src/index.js'
, output: {
file: 'dist/bundle.js'
, format: 'cjs'
}
, plugins: [
resolve({
browser: false
})
, babel({
exclude: 'node_modules/**'
})
, terser()
, filesize()
]
};

View file

@ -1,4 +1,4 @@
import F from 'freesewing' import * as F from 'freesewing'
import base from './base'; import base from './base';
var back = var back =

View file

@ -1,4 +1,4 @@
import F from 'freesewing' import * as F from 'freesewing'
var base = var base =
{ {

View file

@ -1,9 +1,11 @@
import F from 'freesewing' import * as freesewing from 'freesewing'
import cutonfold from '@freesewing-plugins/macro-cutonfold' import * as cutonfold from '@freesewing-plugins/macro-cutonfold'
import * as patternConfig from '../config/config' import { config } from '../config/config'
import back from './back' import back from './back'
var brian = new F.pattern(patternConfig) import { version } from "../package.json"
console.log('config', config);
var brian = new freesewing.pattern(config)
.withPlugin(cutonfold); .withPlugin(cutonfold);
brian.draft = function() brian.draft = function()
@ -13,4 +15,6 @@ brian.draft = function()
return brian; return brian;
} }
module.exports = brian; brian.version = version;
export default brian;

14
packages/brian/test.html Normal file
View file

@ -0,0 +1,14 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Brian</title>
</head>
<body>
<div id="svg"></div>
<script type="text/javascript" src="freesewing.js"></script>
<script>
console.log(freesewing);
</script>
</body>
</html>

View file

@ -1,35 +0,0 @@
const path = require('path');
module.exports = {
mode: 'development',
target: 'web',
entry: './src/index.js',
output: {
path: path.resolve(__dirname, 'dist/browser'),
filename: 'bundle.js',
libraryTarget: 'var',
library: 'freesewing_patterns_brian'
},
module: {
rules:[
{
test: /\.js$/,
exclude: /node_modules/,
use: {
loader: 'babel-loader',
options: {
presets: ['@babel/preset-env']
}
}
},
]
},
externals: {
// require('data') is external and available
// on the global var data
'data': 'data'
},
devServer: {
contentBase: path.resolve(__dirname)
}
};