tablewrap 1.0.5 → 1.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.env.example +1 -1
- package/.eslintrc.js +0 -0
- package/.github/workflows/ci.yml +41 -0
- package/.nvmrc +1 -0
- package/README.md +38 -36
- package/_build/_js/demo.js +15 -18
- package/_build/_js/tablewrap.js +81 -157
- package/_html/index.html +7 -9
- package/_js/demo.js +0 -0
- package/_js/tablewrap.js +0 -5
- package/package.json +32 -42
- package/postcss.config.js +0 -0
- package/tablewrap.gif +0 -0
- package/vite.config.js +61 -0
- package/.babelrc +0 -15
package/.env.example
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
DOMAIN=http://vielhuber.
|
|
1
|
+
DOMAIN=http://vielhuber.vielhuber.dev
|
package/.eslintrc.js
CHANGED
|
File without changes
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
name: CI
|
|
2
|
+
|
|
3
|
+
env:
|
|
4
|
+
CI: true
|
|
5
|
+
|
|
6
|
+
on:
|
|
7
|
+
push:
|
|
8
|
+
tags:
|
|
9
|
+
- 'v*'
|
|
10
|
+
- '[0-9]*'
|
|
11
|
+
|
|
12
|
+
jobs:
|
|
13
|
+
publish:
|
|
14
|
+
runs-on: ubuntu-latest
|
|
15
|
+
|
|
16
|
+
permissions:
|
|
17
|
+
contents: read
|
|
18
|
+
id-token: write
|
|
19
|
+
|
|
20
|
+
steps:
|
|
21
|
+
- name: Checkout
|
|
22
|
+
uses: actions/checkout@v6
|
|
23
|
+
|
|
24
|
+
- name: Node
|
|
25
|
+
uses: actions/setup-node@v6
|
|
26
|
+
with:
|
|
27
|
+
node-version-file: '.nvmrc'
|
|
28
|
+
registry-url: 'https://registry.npmjs.org'
|
|
29
|
+
package-manager-cache: false
|
|
30
|
+
|
|
31
|
+
- name: NPM
|
|
32
|
+
run: npm install
|
|
33
|
+
|
|
34
|
+
- name: Verify version
|
|
35
|
+
run: test "$(node -p "require('./package.json').version")" = "${GITHUB_REF_NAME#v}"
|
|
36
|
+
|
|
37
|
+
- name: Build
|
|
38
|
+
run: npm run prod --if-present
|
|
39
|
+
|
|
40
|
+
- name: Publish
|
|
41
|
+
run: npm publish
|
package/.nvmrc
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
lts/*
|
package/README.md
CHANGED
|
@@ -1,36 +1,38 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
-
|
|
12
|
-
-
|
|
13
|
-
-
|
|
14
|
-
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
```
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
1
|
+
[](https://github.com/vielhuber/tablewrap/actions)
|
|
2
|
+
|
|
3
|
+
# 🖇 tablewrap 🖇
|
|
4
|
+
|
|
5
|
+
tablewrap is a small javascript helper that wraps your html tables on small viewports column-wise.
|
|
6
|
+
|
|
7
|
+

|
|
8
|
+
|
|
9
|
+
## features
|
|
10
|
+
|
|
11
|
+
- no modification of existing css styles needed
|
|
12
|
+
- no extra markup needed
|
|
13
|
+
- performant and lightweight
|
|
14
|
+
- comes as an es6 module
|
|
15
|
+
- cross-browser-support
|
|
16
|
+
- support for preserving the first column
|
|
17
|
+
|
|
18
|
+
## installation
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
npm install tablewrap
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## usage
|
|
25
|
+
|
|
26
|
+
```js
|
|
27
|
+
import Tablewrap from 'tablewrap';
|
|
28
|
+
|
|
29
|
+
document.addEventListener('DOMContentLoaded', () => {
|
|
30
|
+
let tablewrap = new Tablewrap({
|
|
31
|
+
selector: 'table',
|
|
32
|
+
breakpoint: 700,
|
|
33
|
+
preserveFirstCol: true
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
tablewrap.destroy();
|
|
37
|
+
});
|
|
38
|
+
```
|
package/_build/_js/demo.js
CHANGED
|
@@ -1,18 +1,15 @@
|
|
|
1
|
-
"
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
}); //t1.destroy();
|
|
17
|
-
//t2.destroy();
|
|
18
|
-
});
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_tablewrap = require("./tablewrap.js");
|
|
3
|
+
//#region _js/demo.js
|
|
4
|
+
document.addEventListener("DOMContentLoaded", () => {
|
|
5
|
+
new require_tablewrap.default({
|
|
6
|
+
selector: ".basic",
|
|
7
|
+
breakpoint: 500
|
|
8
|
+
});
|
|
9
|
+
new require_tablewrap.default({
|
|
10
|
+
selector: ".advanced",
|
|
11
|
+
breakpoint: 400,
|
|
12
|
+
preserveFirstCol: true
|
|
13
|
+
});
|
|
14
|
+
});
|
|
15
|
+
//#endregion
|
package/_build/_js/tablewrap.js
CHANGED
|
@@ -1,158 +1,82 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
Object.defineProperty(exports, "__esModule", {
|
|
6
|
-
value: true
|
|
1
|
+
Object.defineProperties(exports, {
|
|
2
|
+
__esModule: { value: true },
|
|
3
|
+
[Symbol.toStringTag]: { value: "Module" }
|
|
7
4
|
});
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
this.mediaQuery = window.matchMedia('(max-width: ' + this.args.breakpoint + 'px)');
|
|
87
|
-
this.mediaQueryBind = this.callOnResize.bind(this);
|
|
88
|
-
this.mediaQuery.addListener(this.mediaQueryBind);
|
|
89
|
-
this.callOnResize(this.mediaQuery);
|
|
90
|
-
}
|
|
91
|
-
}, {
|
|
92
|
-
key: "callOnResize",
|
|
93
|
-
value: function callOnResize(mediaQuery) {
|
|
94
|
-
if (mediaQuery.matches) {
|
|
95
|
-
this.insertMobileVersion();
|
|
96
|
-
} else {
|
|
97
|
-
this.insertDesktopVersion();
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
}, {
|
|
101
|
-
key: "insertMobileVersion",
|
|
102
|
-
value: function insertMobileVersion() {
|
|
103
|
-
this.tables.forEach(function (tables__value) {
|
|
104
|
-
if (tables__value.desktop.parentNode === null) {
|
|
105
|
-
return;
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
tables__value.mobile.forEach(function (mobile__value) {
|
|
109
|
-
tables__value.desktop.after(mobile__value);
|
|
110
|
-
});
|
|
111
|
-
tables__value.desktop.remove();
|
|
112
|
-
});
|
|
113
|
-
}
|
|
114
|
-
}, {
|
|
115
|
-
key: "insertDesktopVersion",
|
|
116
|
-
value: function insertDesktopVersion() {
|
|
117
|
-
this.tables.forEach(function (tables__value) {
|
|
118
|
-
if (tables__value.desktop.parentNode !== null) {
|
|
119
|
-
return;
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
tables__value.mobile.forEach(function (mobile__value, mobile__key) {
|
|
123
|
-
if (mobile__key === 0) {
|
|
124
|
-
mobile__value.after(tables__value.desktop);
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
mobile__value.remove();
|
|
128
|
-
});
|
|
129
|
-
});
|
|
130
|
-
}
|
|
131
|
-
}, {
|
|
132
|
-
key: "prevAll",
|
|
133
|
-
value: function prevAll(elem, filter) {
|
|
134
|
-
var sibs = [];
|
|
135
|
-
|
|
136
|
-
while (elem = elem.previousSibling) {
|
|
137
|
-
if (elem.nodeType === 3) {
|
|
138
|
-
continue;
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
if (!filter || filter(elem)) {
|
|
142
|
-
sibs.push(elem);
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
return sibs;
|
|
147
|
-
}
|
|
148
|
-
}, {
|
|
149
|
-
key: "destroy",
|
|
150
|
-
value: function destroy() {
|
|
151
|
-
this.insertDesktopVersion();
|
|
152
|
-
this.mediaQuery.removeListener(this.mediaQueryBind);
|
|
153
|
-
}
|
|
154
|
-
}]);
|
|
155
|
-
return Tablewrap;
|
|
156
|
-
}();
|
|
157
|
-
|
|
158
|
-
exports.default = Tablewrap;
|
|
5
|
+
//#region _js/tablewrap.js
|
|
6
|
+
var Tablewrap = class {
|
|
7
|
+
args = {};
|
|
8
|
+
tables = [];
|
|
9
|
+
mediaQuery = null;
|
|
10
|
+
mediaQueryBind = null;
|
|
11
|
+
constructor(args) {
|
|
12
|
+
this.args = args;
|
|
13
|
+
this.buildMobileDom();
|
|
14
|
+
this.addResizeListeners();
|
|
15
|
+
}
|
|
16
|
+
buildMobileDom() {
|
|
17
|
+
if (document.querySelector(this.args.selector) === null) return;
|
|
18
|
+
document.querySelectorAll(this.args.selector).forEach((el) => {
|
|
19
|
+
let cols = el.querySelector("td").parentNode.children.length;
|
|
20
|
+
let mobileTables = [];
|
|
21
|
+
for (let col = 1; col <= cols; col++) {
|
|
22
|
+
if ("preserveFirstCol" in this.args && this.args.preserveFirstCol === true && col === 1) continue;
|
|
23
|
+
let newDiv = el.cloneNode(true);
|
|
24
|
+
let toRemove = [];
|
|
25
|
+
newDiv.querySelectorAll("td").forEach((el2) => {
|
|
26
|
+
if ("preserveFirstCol" in this.args && this.args.preserveFirstCol === true && this.prevAll(el2).length !== 0 && this.prevAll(el2).length + 1 !== col || !("preserveFirstCol" in this.args && this.args.preserveFirstCol === true) && this.prevAll(el2).length + 1 !== col) toRemove.push(el2);
|
|
27
|
+
});
|
|
28
|
+
toRemove.forEach((toRemove__value) => {
|
|
29
|
+
toRemove__value.remove();
|
|
30
|
+
});
|
|
31
|
+
mobileTables.push(newDiv);
|
|
32
|
+
}
|
|
33
|
+
mobileTables = mobileTables.reverse();
|
|
34
|
+
this.tables.push({
|
|
35
|
+
desktop: el,
|
|
36
|
+
mobile: mobileTables
|
|
37
|
+
});
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
addResizeListeners() {
|
|
41
|
+
this.mediaQuery = window.matchMedia("(max-width: " + this.args.breakpoint + "px)");
|
|
42
|
+
this.mediaQueryBind = this.callOnResize.bind(this);
|
|
43
|
+
this.mediaQuery.addListener(this.mediaQueryBind);
|
|
44
|
+
this.callOnResize(this.mediaQuery);
|
|
45
|
+
}
|
|
46
|
+
callOnResize(mediaQuery) {
|
|
47
|
+
if (mediaQuery.matches) this.insertMobileVersion();
|
|
48
|
+
else this.insertDesktopVersion();
|
|
49
|
+
}
|
|
50
|
+
insertMobileVersion() {
|
|
51
|
+
this.tables.forEach((tables__value) => {
|
|
52
|
+
if (tables__value.desktop.parentNode === null) return;
|
|
53
|
+
tables__value.mobile.forEach((mobile__value) => {
|
|
54
|
+
tables__value.desktop.after(mobile__value);
|
|
55
|
+
});
|
|
56
|
+
tables__value.desktop.remove();
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
insertDesktopVersion() {
|
|
60
|
+
this.tables.forEach((tables__value) => {
|
|
61
|
+
if (tables__value.desktop.parentNode !== null) return;
|
|
62
|
+
tables__value.mobile.forEach((mobile__value, mobile__key) => {
|
|
63
|
+
if (mobile__key === 0) mobile__value.after(tables__value.desktop);
|
|
64
|
+
mobile__value.remove();
|
|
65
|
+
});
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
prevAll(elem, filter) {
|
|
69
|
+
let sibs = [];
|
|
70
|
+
while (elem = elem.previousSibling) {
|
|
71
|
+
if (elem.nodeType === 3) continue;
|
|
72
|
+
if (!filter || filter(elem)) sibs.push(elem);
|
|
73
|
+
}
|
|
74
|
+
return sibs;
|
|
75
|
+
}
|
|
76
|
+
destroy() {
|
|
77
|
+
this.insertDesktopVersion();
|
|
78
|
+
this.mediaQuery.removeListener(this.mediaQueryBind);
|
|
79
|
+
}
|
|
80
|
+
};
|
|
81
|
+
//#endregion
|
|
82
|
+
exports.default = Tablewrap;
|
package/_html/index.html
CHANGED
|
@@ -1,17 +1,15 @@
|
|
|
1
|
-
<!
|
|
1
|
+
<!doctype html>
|
|
2
2
|
<html lang="de">
|
|
3
3
|
<head>
|
|
4
4
|
<meta charset="utf-8" />
|
|
5
|
-
<meta
|
|
6
|
-
name="viewport"
|
|
7
|
-
content="width=device-width, initial-scale=1, maximum-scale=5, minimum-scale=1"
|
|
8
|
-
/>
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=5, minimum-scale=1" />
|
|
9
6
|
<title>tablewrap</title>
|
|
10
|
-
<link
|
|
11
|
-
rel="stylesheet"
|
|
12
|
-
href="http://yui.yahooapis.com/3.4.1/build/cssreset/cssreset-min.css"
|
|
13
|
-
/>
|
|
14
7
|
<style>
|
|
8
|
+
* {
|
|
9
|
+
box-sizing: border-box;
|
|
10
|
+
margin: 0;
|
|
11
|
+
padding: 0;
|
|
12
|
+
}
|
|
15
13
|
td {
|
|
16
14
|
padding: 10px 5px;
|
|
17
15
|
border: 1px solid #000;
|
package/_js/demo.js
CHANGED
|
File without changes
|
package/_js/tablewrap.js
CHANGED
package/package.json
CHANGED
|
@@ -1,53 +1,43 @@
|
|
|
1
1
|
{
|
|
2
2
|
"scripts": {
|
|
3
|
-
"js:
|
|
4
|
-
"js:
|
|
5
|
-
"js:
|
|
6
|
-
"js:demo:
|
|
7
|
-
"js": "npm-run-all --sequential js:
|
|
8
|
-
"js:dev": "npm-run-all --sequential js:
|
|
9
|
-
"html": "html-minifier --collapse-whitespace --output ./_public/index.html ./_html/index.html",
|
|
10
|
-
"html:dev": "html-minifier --output ./_public/index.html ./_html/index.html",
|
|
11
|
-
"
|
|
12
|
-
"watch:
|
|
13
|
-
"
|
|
14
|
-
"
|
|
15
|
-
"dev": "npm-run-all --parallel watch:* browsersync"
|
|
3
|
+
"js:vite": "vite build --logLevel error --mode dist",
|
|
4
|
+
"js:minify": "terser --compress --mangle --comments false --output ./_public/tablewrap.js ./_public/tablewrap.js",
|
|
5
|
+
"js:package": "vite build --logLevel error --mode package",
|
|
6
|
+
"js:demo:vite": "vite build --logLevel error --mode demo",
|
|
7
|
+
"js": "npm-run-all --sequential js:vite js:minify js:package js:demo:vite",
|
|
8
|
+
"js:dev": "npm-run-all --sequential js:vite js:package js:demo:vite",
|
|
9
|
+
"html": "html-minifier-next --collapse-whitespace --output ./_public/index.html ./_html/index.html",
|
|
10
|
+
"html:dev": "html-minifier-next --output ./_public/index.html ./_html/index.html",
|
|
11
|
+
"watch:js": "onchange ./_js/*.js ./_js/**/*.js --initial --poll 250 --delay 250 --await-write-finish 500 -- onerror \"npm run js:dev --silent\" --title \"watch:js\" --message \"build failed\" --sound mute",
|
|
12
|
+
"watch:html": "onchange ./_html/*.html ./_html/**/*.html --initial --poll 250 --delay 250 --await-write-finish 500 -- onerror \"npm run html:dev --silent\" --title \"watch:html\" --message \"build failed\" --sound mute",
|
|
13
|
+
"prod": "npm-run-all --parallel js html",
|
|
14
|
+
"dev": "npm-run-all --parallel watch:*"
|
|
16
15
|
},
|
|
17
16
|
"devDependencies": {
|
|
18
|
-
"
|
|
19
|
-
"
|
|
20
|
-
"
|
|
21
|
-
"@babel/plugin-proposal-object-rest-spread": "^7.3.4",
|
|
22
|
-
"@babel/plugin-proposal-optional-chaining": "^7.2.0",
|
|
23
|
-
"@babel/plugin-transform-runtime": "^7.3.4",
|
|
24
|
-
"@babel/polyfill": "^7.2.5",
|
|
25
|
-
"@babel/preset-env": "^7.3.4",
|
|
26
|
-
"@babel/runtime": "^7.3.4",
|
|
27
|
-
"babelify": "^10.0.0",
|
|
28
|
-
"browser-sync": "^2.26.3",
|
|
29
|
-
"browserify": "^16.2.3",
|
|
30
|
-
"cli-error-notifier": "^2.1.0",
|
|
31
|
-
"cross-var": "^1.1.0",
|
|
32
|
-
"eslint": "^5.14.1",
|
|
33
|
-
"from-env": "^1.1.2",
|
|
34
|
-
"html-minifier": "^4.0.0",
|
|
35
|
-
"mdn-polyfills": "^5.16.0",
|
|
36
|
-
"node-sass": "^4.11.0",
|
|
17
|
+
"cli-error-notifier": "^3.0.2",
|
|
18
|
+
"eslint": "^10.5.0",
|
|
19
|
+
"html-minifier-next": "^7.0.0",
|
|
37
20
|
"npm-run-all": "^4.1.5",
|
|
38
|
-
"onchange": "^
|
|
39
|
-
"postcss-cli": "^
|
|
40
|
-
"postcss-url": "^
|
|
41
|
-
"
|
|
21
|
+
"onchange": "^7.1.0",
|
|
22
|
+
"postcss-cli": "^11.0.1",
|
|
23
|
+
"postcss-url": "^10.1.4",
|
|
24
|
+
"terser": "^5.48.0",
|
|
25
|
+
"vite": "^8.0.16"
|
|
26
|
+
},
|
|
27
|
+
"overrides": {
|
|
28
|
+
"@babel/core": "^7.29.7",
|
|
29
|
+
"shell-quote": "^1.8.4",
|
|
30
|
+
"uuid": "^11.1.1",
|
|
31
|
+
"ws": "^8.21.0"
|
|
42
32
|
},
|
|
43
33
|
"name": "tablewrap",
|
|
44
|
-
"version": "1.
|
|
34
|
+
"version": "1.1.3",
|
|
45
35
|
"description": "",
|
|
46
36
|
"main": "_build/_js/tablewrap.js",
|
|
37
|
+
"repository": {
|
|
38
|
+
"type": "git",
|
|
39
|
+
"url": "git+ssh://git@github.com/vielhuber/tablewrap.git"
|
|
40
|
+
},
|
|
47
41
|
"author": "",
|
|
48
|
-
"license": "ISC"
|
|
49
|
-
"browserslist": [
|
|
50
|
-
"> 0.25%",
|
|
51
|
-
"not dead"
|
|
52
|
-
]
|
|
42
|
+
"license": "ISC"
|
|
53
43
|
}
|
package/postcss.config.js
CHANGED
|
File without changes
|
package/tablewrap.gif
CHANGED
|
File without changes
|
package/vite.config.js
ADDED
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { defineConfig } from 'vite';
|
|
2
|
+
|
|
3
|
+
export default defineConfig(({ mode }) => {
|
|
4
|
+
if (mode === 'dist') {
|
|
5
|
+
return {
|
|
6
|
+
build: {
|
|
7
|
+
outDir: '_public',
|
|
8
|
+
rollupOptions: {
|
|
9
|
+
input: './_js/tablewrap.js',
|
|
10
|
+
output: {
|
|
11
|
+
format: 'iife',
|
|
12
|
+
entryFileNames: 'tablewrap.js',
|
|
13
|
+
},
|
|
14
|
+
},
|
|
15
|
+
sourcemap: false,
|
|
16
|
+
minify: false,
|
|
17
|
+
emptyOutDir: false,
|
|
18
|
+
},
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
if (mode === 'demo') {
|
|
22
|
+
return {
|
|
23
|
+
build: {
|
|
24
|
+
outDir: '_public',
|
|
25
|
+
rollupOptions: {
|
|
26
|
+
input: './_js/demo.js',
|
|
27
|
+
output: {
|
|
28
|
+
format: 'iife',
|
|
29
|
+
entryFileNames: 'demo.js',
|
|
30
|
+
},
|
|
31
|
+
},
|
|
32
|
+
sourcemap: false,
|
|
33
|
+
minify: false,
|
|
34
|
+
emptyOutDir: false,
|
|
35
|
+
},
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
if (mode === 'package') {
|
|
39
|
+
return {
|
|
40
|
+
build: {
|
|
41
|
+
outDir: '_build/_js',
|
|
42
|
+
lib: {
|
|
43
|
+
entry: {
|
|
44
|
+
tablewrap: './_js/tablewrap.js',
|
|
45
|
+
demo: './_js/demo.js',
|
|
46
|
+
},
|
|
47
|
+
formats: ['cjs'],
|
|
48
|
+
fileName: (format, entryName) => entryName + '.js',
|
|
49
|
+
},
|
|
50
|
+
rollupOptions: {
|
|
51
|
+
output: {
|
|
52
|
+
exports: 'named',
|
|
53
|
+
},
|
|
54
|
+
},
|
|
55
|
+
sourcemap: false,
|
|
56
|
+
minify: false,
|
|
57
|
+
emptyOutDir: false,
|
|
58
|
+
},
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
});
|
package/.babelrc
DELETED