@kizmann/nano-ui 1.0.0 → 1.0.1
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/dist/nano-ui.css +1 -0
- package/dist/nano-ui.js +4 -0
- package/dist/nano-ui.js.map +1 -0
- package/dist/themes/dark.css +1 -0
- package/dist/themes/light.css +1 -0
- package/package.json +7 -1
- package/.github/workflows/compile-deploy-publish.yml +0 -65
- package/assets/nano-ui-dark.svg +0 -19
- package/assets/nano-ui-light.svg +0 -19
- package/assets/pico-js-dark.svg +0 -19
- package/assets/pico-js-light.svg +0 -19
- package/babel.config.js +0 -17
- package/demos/builder.html +0 -411
- package/demos/button/index.html +0 -129
- package/demos/cascader/index.html +0 -127
- package/demos/chart/index.html +0 -53
- package/demos/checkbox/index.html +0 -97
- package/demos/config/index.html +0 -95
- package/demos/confirm/index.html +0 -78
- package/demos/datepicker/index.html +0 -69
- package/demos/draggable/index.html +0 -127
- package/demos/form/index.html +0 -83
- package/demos/form.html +0 -462
- package/demos/grid.html +0 -321
- package/demos/input/index.html +0 -100
- package/demos/map/index.html +0 -81
- package/demos/matrix/index.html +0 -104
- package/demos/modal/index.html +0 -98
- package/demos/overview.html +0 -1468
- package/demos/paginator/index.html +0 -58
- package/demos/popover/index.html +0 -103
- package/demos/radio/index.html +0 -71
- package/demos/resizer/index.html +0 -106
- package/demos/scrollbar.html +0 -328
- package/demos/select/index.html +0 -174
- package/demos/select.html +0 -164
- package/demos/style.css +0 -50
- package/demos/switch/index.html +0 -69
- package/demos/table/index.html +0 -126
- package/demos/tabs/index.html +0 -110
- package/demos/tabs.html +0 -293
- package/demos/textarea/index.html +0 -77
- package/demos/timepicker/index.html +0 -66
- package/demos/transfer/index.html +0 -88
- package/demos/wysiwyg/index.html +0 -49
- package/docs/README.md +0 -34
- package/docs/_sidebar.md +0 -37
- package/docs/files/data/draggable.md +0 -143
- package/docs/files/data/map.md +0 -1
- package/docs/files/data/paginator.md +0 -23
- package/docs/files/data/table.md +0 -247
- package/docs/files/data/virtualscroller.md +0 -2
- package/docs/files/form/button.md +0 -131
- package/docs/files/form/cascader.md +0 -164
- package/docs/files/form/checkbox.md +0 -179
- package/docs/files/form/datepicker.md +0 -78
- package/docs/files/form/form.md +0 -52
- package/docs/files/form/input.md +0 -90
- package/docs/files/form/radio.md +0 -150
- package/docs/files/form/select.md +0 -202
- package/docs/files/form/switch.md +0 -98
- package/docs/files/form/textarea.md +0 -102
- package/docs/files/form/timepicker.md +0 -78
- package/docs/files/form/transfer.md +0 -30
- package/docs/files/others/config.md +0 -261
- package/docs/files/others/confirm.md +0 -51
- package/docs/files/others/drawer.md +0 -32
- package/docs/files/others/loader.md +0 -22
- package/docs/files/others/map.md +0 -32
- package/docs/files/others/modal.md +0 -32
- package/docs/files/others/notification.md +0 -52
- package/docs/files/others/popover.md +0 -36
- package/docs/files/others/resizer.md +0 -8
- package/docs/files/others/scrollbar.md +0 -8
- package/docs/files/others/tabs.md +0 -32
- package/docs/index.template.html +0 -76
- package/docs/src/js/backup.js +0 -128
- package/docs/src/js/helper/item-helper.js +0 -0
- package/docs/src/js/index.js +0 -21
- package/docs/src/js/plugin/title-plugin.js +0 -0
- package/docs/src/js/plugin/vue-demo-plugin.js +0 -97
- package/docs/src/js/theme/basic.js +0 -31
- package/docs/src/js/theme/docsify.js +0 -11
- package/docs/src/scss/index-dark.scss +0 -3
- package/docs/src/scss/index-light.scss +0 -3
- package/docs/src/scss/index.scss +0 -15
- package/docs/src/scss/mixins/base.scss +0 -14
- package/docs/src/scss/mixins/grid.scss +0 -213
- package/docs/src/scss/mixins/media.scss +0 -35
- package/docs/src/scss/mixins/space.scss +0 -61
- package/docs/src/scss/root/vars-dark.scss +0 -15
- package/docs/src/scss/root/vars-light.scss +0 -15
- package/docs/src/scss/root/vars.scss +0 -110
- package/docs/src/scss/theme/default.scss +0 -123
- package/docs/src/scss/theme/header.scss +0 -147
- package/docs/src/scss/theme/layout.scss +0 -186
- package/docs/src/scss/theme/loader.scss +0 -63
- package/docs/src/scss/theme/markdown.scss +0 -79
- package/docs/src/scss/theme/navigation.scss +0 -58
- package/docs/src/scss/theme/progress.scss +0 -9
- package/docs/src/scss/theme/search.scss +0 -119
- package/docs/src/scss/theme/syntax.scss +0 -142
- package/docs/src/scss/theme/table.scss +0 -63
- package/favicon/apple-touch-icon.png +0 -0
- package/favicon/favicon-96x96.png +0 -0
- package/favicon/favicon.ico +0 -0
- package/favicon/favicon.svg +0 -3
- package/favicon/site.webmanifest +0 -21
- package/favicon/web-app-manifest-192x192.png +0 -0
- package/favicon/web-app-manifest-512x512.png +0 -0
- package/mix-manifest.json +0 -4
- package/postcss.config.js +0 -14
- package/webpack.config.js +0 -211
- package/webservy.json +0 -8
- /package/{.nojekyll → dist/.ignore.js} +0 -0
@@ -1,58 +0,0 @@
|
|
1
|
-
<!doctype html>
|
2
|
-
<html lang="en">
|
3
|
-
<head>
|
4
|
-
<meta charset="UTF-8">
|
5
|
-
<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
|
6
|
-
<meta http-equiv="X-UA-Compatible" content="ie=edge">
|
7
|
-
<title>Nano UI Paginator</title>
|
8
|
-
|
9
|
-
<link rel="stylesheet" href="https://unpkg.com/backpack.css@2.0.0/lib/backpack.css">
|
10
|
-
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.9.0/css/all.min.css">
|
11
|
-
<link rel="stylesheet" href="../../dist/nano-ui.css">
|
12
|
-
<link rel="stylesheet" href="../style.css">
|
13
|
-
|
14
|
-
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.13/vue.js"></script>
|
15
|
-
<script src="https://vankizmann.github.io/@kizmann/pico-js/dist/@kizmann/pico-js.js"></script>
|
16
|
-
<script src="../../dist/nano-ui.js"></script>
|
17
|
-
|
18
|
-
</head>
|
19
|
-
<body>
|
20
|
-
|
21
|
-
<div id="app">
|
22
|
-
<n-form :form="form" :class="{ 'n-inverse': inverse }">
|
23
|
-
|
24
|
-
<n-form-item label="Inverse">
|
25
|
-
<n-checkbox v-model="inverse">Inverse</n-checkbox>
|
26
|
-
</n-form-item>
|
27
|
-
|
28
|
-
<n-form-item label="List">
|
29
|
-
<n-paginator size="small" :page="1" :limit="25" :total="264" />
|
30
|
-
</n-form-item>
|
31
|
-
|
32
|
-
</n-form>
|
33
|
-
</div>
|
34
|
-
|
35
|
-
<script>
|
36
|
-
(function (Nano) {
|
37
|
-
|
38
|
-
'use strict';
|
39
|
-
|
40
|
-
pi.Dom.ready(function () {
|
41
|
-
|
42
|
-
Vue.config.devtools = true;
|
43
|
-
|
44
|
-
var config = {
|
45
|
-
data: function() {
|
46
|
-
|
47
|
-
return { form: {}, inverse: false };
|
48
|
-
}
|
49
|
-
};
|
50
|
-
|
51
|
-
window.App = new Vue(config).$mount('#app');
|
52
|
-
|
53
|
-
});
|
54
|
-
|
55
|
-
})(window.Nano);
|
56
|
-
</script>
|
57
|
-
</body>
|
58
|
-
</html>
|
package/demos/popover/index.html
DELETED
@@ -1,103 +0,0 @@
|
|
1
|
-
<!doctype html>
|
2
|
-
<html lang="en">
|
3
|
-
<head>
|
4
|
-
<meta charset="UTF-8">
|
5
|
-
<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
|
6
|
-
<meta http-equiv="X-UA-Compatible" content="ie=edge">
|
7
|
-
<title>Nano UI Popover</title>
|
8
|
-
|
9
|
-
<link rel="stylesheet" href="https://unpkg.com/backpack.css@2.0.0/lib/backpack.css">
|
10
|
-
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.9.0/css/all.min.css">
|
11
|
-
<link rel="stylesheet" href="../../dist/nano-ui.css">
|
12
|
-
<link rel="stylesheet" href="../style.css">
|
13
|
-
|
14
|
-
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.13/vue.js"></script>
|
15
|
-
<script src="https://vankizmann.github.io/@kizmann/pico-js/dist/@kizmann/pico-js.js"></script>
|
16
|
-
<script src="../../dist/nano-ui.js"></script>
|
17
|
-
|
18
|
-
</head>
|
19
|
-
<body style="position: relative;">
|
20
|
-
|
21
|
-
<div id="app">
|
22
|
-
<n-form class="n-form">
|
23
|
-
|
24
|
-
<n-form-item>
|
25
|
-
<pre>{{ test }}</pre>
|
26
|
-
</n-form-item>
|
27
|
-
|
28
|
-
<n-form-item>
|
29
|
-
<n-checkbox v-model="hide"></n-checkbox>
|
30
|
-
</n-form-item>
|
31
|
-
|
32
|
-
<div v-if="!hide" id="test" style="position: relative !important; background: #eee; height: 300px; overflow: hidden;">
|
33
|
-
<n-scrollbar>
|
34
|
-
<div>
|
35
|
-
<n-button type="primary" refs="toggle">
|
36
|
-
Popover 01
|
37
|
-
</n-button>
|
38
|
-
<n-popover trigger="hover" position="top-start" :width="300">
|
39
|
-
<n-input v-model="test"></n-input>
|
40
|
-
</n-popover>
|
41
|
-
<br>
|
42
|
-
<br>
|
43
|
-
<br>
|
44
|
-
<br>
|
45
|
-
<br>
|
46
|
-
<br>
|
47
|
-
<br>
|
48
|
-
<br>
|
49
|
-
<br>
|
50
|
-
<br>
|
51
|
-
<br>
|
52
|
-
<br>
|
53
|
-
<br>
|
54
|
-
<br>
|
55
|
-
<br>
|
56
|
-
<br>
|
57
|
-
<br>
|
58
|
-
<br>
|
59
|
-
<br>
|
60
|
-
<br>
|
61
|
-
<br>
|
62
|
-
<br>
|
63
|
-
<br>
|
64
|
-
<br>
|
65
|
-
<br>
|
66
|
-
<br>
|
67
|
-
<br>
|
68
|
-
<br>
|
69
|
-
<br>
|
70
|
-
<br>
|
71
|
-
<br>
|
72
|
-
<br>
|
73
|
-
<br>
|
74
|
-
<br>
|
75
|
-
<n-button type="warning">
|
76
|
-
Popover 02
|
77
|
-
</n-button>
|
78
|
-
</div>
|
79
|
-
<n-popover trigger="context">
|
80
|
-
Hello 2!
|
81
|
-
</n-popover>
|
82
|
-
</n-scrollbar>
|
83
|
-
</div>
|
84
|
-
</n-form>
|
85
|
-
</div>
|
86
|
-
|
87
|
-
<script>
|
88
|
-
pi.Dom.ready(function () {
|
89
|
-
|
90
|
-
Vue.config.devtools = true;
|
91
|
-
|
92
|
-
var config = {
|
93
|
-
data: function() {
|
94
|
-
return { test: 'Foo', hide: false };
|
95
|
-
}
|
96
|
-
};
|
97
|
-
|
98
|
-
window.App = new Vue(config).$mount('#app');
|
99
|
-
|
100
|
-
});
|
101
|
-
</script>
|
102
|
-
</body>
|
103
|
-
</html>
|
package/demos/radio/index.html
DELETED
@@ -1,71 +0,0 @@
|
|
1
|
-
<!doctype html>
|
2
|
-
<html lang="en">
|
3
|
-
<head>
|
4
|
-
<meta charset="UTF-8">
|
5
|
-
<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
|
6
|
-
<meta http-equiv="X-UA-Compatible" content="ie=edge">
|
7
|
-
<title>Nano UI Radio</title>
|
8
|
-
|
9
|
-
<link rel="stylesheet" href="https://unpkg.com/backpack.css@2.0.0/lib/backpack.css">
|
10
|
-
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.9.0/css/all.min.css">
|
11
|
-
<link rel="stylesheet" href="../../dist/nano-ui.css">
|
12
|
-
<link rel="stylesheet" href="../style.css">
|
13
|
-
|
14
|
-
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.6.10/vue.min.js"></script>
|
15
|
-
<script src="https://vankizmann.github.io/@kizmann/pico-js/dist/@kizmann/pico-js.js"></script>
|
16
|
-
<script src="../../dist/nano-ui.js"></script>
|
17
|
-
|
18
|
-
</head>
|
19
|
-
<body>
|
20
|
-
|
21
|
-
<div id="app">
|
22
|
-
<n-form :form="form">
|
23
|
-
|
24
|
-
<n-form-item label="Group Vertical">
|
25
|
-
<n-radio-group align="vertical" v-model="form.option">
|
26
|
-
<n-radio value="foo">Foo</n-radio>
|
27
|
-
<n-radio value="bar">Bar</n-radio>
|
28
|
-
<n-radio value="james">James</n-radio>
|
29
|
-
<n-radio value="bond">Bond</n-radio>
|
30
|
-
<n-radio value="chuck">Chuck</n-radio>
|
31
|
-
<n-radio value="norris">Norris</n-radio>
|
32
|
-
</n-radio-group>
|
33
|
-
</n-form-item>
|
34
|
-
|
35
|
-
<n-form-item label="Group Horizontal">
|
36
|
-
<n-radio-group align="horizontal" v-model="form.option">
|
37
|
-
<n-radio value="foo">Foo</n-radio>
|
38
|
-
<n-radio value="bar">Bar</n-radio>
|
39
|
-
<n-radio value="james">James</n-radio>
|
40
|
-
<n-radio value="bond">Bond</n-radio>
|
41
|
-
<n-radio value="chuck">Chuck</n-radio>
|
42
|
-
<n-radio value="norris">Norris</n-radio>
|
43
|
-
</n-radio-group>
|
44
|
-
</n-form-item>
|
45
|
-
|
46
|
-
</n-form>
|
47
|
-
</div>
|
48
|
-
|
49
|
-
<script>
|
50
|
-
pi.Dom.ready(() => {
|
51
|
-
|
52
|
-
Vue.config.devtools = true;
|
53
|
-
|
54
|
-
var config = {
|
55
|
-
data: function() {
|
56
|
-
|
57
|
-
var form = {
|
58
|
-
option: null
|
59
|
-
};
|
60
|
-
|
61
|
-
return {
|
62
|
-
form: form, inverse: false
|
63
|
-
};
|
64
|
-
}
|
65
|
-
};
|
66
|
-
|
67
|
-
window.App = new Vue(config).$mount('#app');
|
68
|
-
})
|
69
|
-
</script>
|
70
|
-
</body>
|
71
|
-
</html>
|
package/demos/resizer/index.html
DELETED
@@ -1,106 +0,0 @@
|
|
1
|
-
<!doctype html>
|
2
|
-
<html lang="en">
|
3
|
-
<head>
|
4
|
-
<meta charset="UTF-8">
|
5
|
-
<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
|
6
|
-
<meta http-equiv="X-UA-Compatible" content="ie=edge">
|
7
|
-
<title>Nano UI Resizer</title>
|
8
|
-
|
9
|
-
<link rel="stylesheet" href="https://unpkg.com/backpack.css@2.0.0/lib/backpack.css">
|
10
|
-
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.9.0/css/all.min.css">
|
11
|
-
<link rel="stylesheet" href="../../dist/nano-ui.css">
|
12
|
-
<link rel="stylesheet" href="../style.css">
|
13
|
-
|
14
|
-
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.13/vue.js"></script>
|
15
|
-
<script src="https://vankizmann.github.io/@kizmann/pico-js/dist/@kizmann/pico-js.js"></script>
|
16
|
-
<script src="../../dist/nano-ui.js"></script>
|
17
|
-
|
18
|
-
</head>
|
19
|
-
<body>
|
20
|
-
|
21
|
-
<div id="app">
|
22
|
-
|
23
|
-
<div style="border: 2px solid #000; display: inline-block; overflow: hidden;">
|
24
|
-
<div style="position: relative; width: 600px; height: 30vw; max-width: 100%; overflow: auto;">
|
25
|
-
<n-resizer :width="600" :min-width="300" :max-width="800">
|
26
|
-
<div style="width: 600px;">
|
27
|
-
<div style="margin-left: auto; height: 400px; width: 400px; background: lightcoral;">
|
28
|
-
<!-- SPACER -->
|
29
|
-
</div>
|
30
|
-
<div style="margin-left: auto; height: 200px; width: 200px; background: lightblue;">
|
31
|
-
<!-- SPACER -->
|
32
|
-
</div>
|
33
|
-
<div style="margin-left: auto; height: 300px; width: 300px; background: lightseagreen;">
|
34
|
-
<!-- SPACER -->
|
35
|
-
</div>
|
36
|
-
<div style="margin-left: auto; height: 400px; width: 400px; background: lightcoral;">
|
37
|
-
<!-- SPACER -->
|
38
|
-
</div>
|
39
|
-
<div style="margin-left: auto; height: 200px; width: 200px; background: lightblue;">
|
40
|
-
<!-- SPACER -->
|
41
|
-
</div>
|
42
|
-
<div style="margin-left: auto; height: 300px; width: 300px; background: lightseagreen;">
|
43
|
-
<!-- SPACER -->
|
44
|
-
</div>
|
45
|
-
<div style="margin-left: auto; height: 400px; width: 400px; background: lightcoral;">
|
46
|
-
<!-- SPACER -->
|
47
|
-
</div>
|
48
|
-
<div style="margin-left: auto; height: 200px; width: 200px; background: lightblue;">
|
49
|
-
<!-- SPACER -->
|
50
|
-
</div>
|
51
|
-
<div style="margin-left: auto; height: 300px; width: 300px; background: lightseagreen;">
|
52
|
-
<!-- SPACER -->
|
53
|
-
</div>
|
54
|
-
</div>
|
55
|
-
</n-resizer>
|
56
|
-
</div>
|
57
|
-
</div>
|
58
|
-
|
59
|
-
</div>
|
60
|
-
|
61
|
-
<script>
|
62
|
-
(function (Nano) {
|
63
|
-
|
64
|
-
'use strict';
|
65
|
-
|
66
|
-
pi.Dom.ready(function () {
|
67
|
-
|
68
|
-
Vue.config.devtools = true;
|
69
|
-
|
70
|
-
var config = {
|
71
|
-
data: function () {
|
72
|
-
|
73
|
-
let total = 0;
|
74
|
-
|
75
|
-
let childGenerator = function (count) {
|
76
|
-
|
77
|
-
if ( count === undefined ) {
|
78
|
-
count = 300;
|
79
|
-
}
|
80
|
-
|
81
|
-
let children = Array(count).fill(null);
|
82
|
-
|
83
|
-
pi.Arr.map(children, function (item) {
|
84
|
-
|
85
|
-
total ++;
|
86
|
-
|
87
|
-
item = {
|
88
|
-
label: 'Item ' + total, id: 'id-' + total
|
89
|
-
};
|
90
|
-
|
91
|
-
return item;
|
92
|
-
});
|
93
|
-
|
94
|
-
return children;
|
95
|
-
};
|
96
|
-
|
97
|
-
return { items: childGenerator(80), items2: [] };
|
98
|
-
}
|
99
|
-
};
|
100
|
-
|
101
|
-
window.App = new Vue(config).$mount('#app');
|
102
|
-
});
|
103
|
-
})(window.Nano);
|
104
|
-
</script>
|
105
|
-
</body>
|
106
|
-
</html>
|
package/demos/scrollbar.html
DELETED
@@ -1,328 +0,0 @@
|
|
1
|
-
<!doctype html>
|
2
|
-
<html lang="en">
|
3
|
-
<head>
|
4
|
-
<meta charset="UTF-8">
|
5
|
-
<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
|
6
|
-
<meta http-equiv="X-UA-Compatible" content="ie=edge">
|
7
|
-
<title>Nano UI</title>
|
8
|
-
|
9
|
-
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Roboto:wght@400;700&display=swap">
|
10
|
-
<link rel="stylesheet" href="https://unpkg.com/backpack.css@2.0.0/lib/backpack.css">
|
11
|
-
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.9.0/css/all.min.css">
|
12
|
-
<link rel="stylesheet" href="../dist/nano-ui.css">
|
13
|
-
<link id="theme" rel="stylesheet" href="../dist/themes/light.css">
|
14
|
-
|
15
|
-
<!-- <script src="https://cdnjs.cloudflare.com/ajax/libs/vue/3.0.5/vue.global.prod.js"></script> -->
|
16
|
-
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.1/moment.min.js"></script>
|
17
|
-
<script src="https://unpkg.com/vue@3.4.6"></script>
|
18
|
-
<!-- <script src="../node_modules/pico-js/dist/pico-js.js"></script> -->
|
19
|
-
<script src="https://vankizmann.github.io/pico-js/dist/pico-js.js"></script>
|
20
|
-
<script src="../dist/nano-ui.js"></script>
|
21
|
-
|
22
|
-
<link rel="stylesheet" href="../docs/dist/index.css">
|
23
|
-
|
24
|
-
<style>
|
25
|
-
|
26
|
-
body {
|
27
|
-
font-family: 'Helvetica', 'Roboto', 'Arial', sans-serif;
|
28
|
-
font-size: 14px;
|
29
|
-
height: 100%;
|
30
|
-
overflow-x: hidden;
|
31
|
-
}
|
32
|
-
|
33
|
-
#app {
|
34
|
-
overflow-x: hidden;
|
35
|
-
}
|
36
|
-
|
37
|
-
.app-scrollbar {
|
38
|
-
width: 100vw;
|
39
|
-
height: 100vh;
|
40
|
-
}
|
41
|
-
|
42
|
-
.app-container {
|
43
|
-
max-width: 1440px;
|
44
|
-
margin: 0 auto;
|
45
|
-
padding: 20px 30px 40px 30px;
|
46
|
-
}
|
47
|
-
|
48
|
-
.app-options {
|
49
|
-
border-bottom: 1px solid #eee;
|
50
|
-
margin-bottom: 20px;
|
51
|
-
}
|
52
|
-
|
53
|
-
h2 {
|
54
|
-
font-size: 32px;
|
55
|
-
font-weight: bold;
|
56
|
-
padding-bottom: 10px;
|
57
|
-
margin: 50px 0 15px;
|
58
|
-
border-bottom: 1px solid #eee;
|
59
|
-
}
|
60
|
-
|
61
|
-
</style>
|
62
|
-
|
63
|
-
</head>
|
64
|
-
<body>
|
65
|
-
|
66
|
-
<div id="app">
|
67
|
-
<div class="app-container">
|
68
|
-
|
69
|
-
<h2>NVirtualscroller</h2>
|
70
|
-
|
71
|
-
<div class="grid grid--row grid--wrap grid--10-10">
|
72
|
-
<div class="col--auto">
|
73
|
-
<n-button type="primary" @click="virtualTree = virtualData">
|
74
|
-
Swap items
|
75
|
-
</n-button>
|
76
|
-
</div>
|
77
|
-
<div class="col--auto">
|
78
|
-
<n-button type="primary" @click="$refs.virtualscroller.scrollIntoView(0)">
|
79
|
-
Scroll to first item
|
80
|
-
</n-button>
|
81
|
-
</div>
|
82
|
-
<div class="col--auto">
|
83
|
-
<n-button type="primary" @click="$refs.virtualscroller.scrollIntoView(2000)">
|
84
|
-
Scroll to item 2000
|
85
|
-
</n-button>
|
86
|
-
</div>
|
87
|
-
<div class="col--auto">
|
88
|
-
<n-button type="primary" @click="$refs.virtualscroller.scrollIntoView(7100)">
|
89
|
-
Scroll to item 7100
|
90
|
-
</n-button>
|
91
|
-
</div>
|
92
|
-
<div class="col--auto">
|
93
|
-
<n-button type="primary" @click="$refs.virtualscroller.scrollIntoView(-1)">
|
94
|
-
Scroll to last item
|
95
|
-
</n-button>
|
96
|
-
</div>
|
97
|
-
</div>
|
98
|
-
|
99
|
-
<n-virtualscroller ref="virtualscroller" :items="virtualData" style="height: 500px; margin-top: 30px; box-shadow: 0 0 2px 2px #dddedf; border-radius: 4px;">
|
100
|
-
<template v-slot:default="{ value }">
|
101
|
-
<div style="padding: 0 15px; line-height: 30px;">{{ value.label }}</div>
|
102
|
-
</template>
|
103
|
-
</n-virtualscroller>
|
104
|
-
|
105
|
-
<n-draglist v-model:items="virtualTree" unique-prop="uid" :render-select="true" :render-expand="true" style="height: 300px; margin-top: 30px; border: 2px solid #dddedf; border-radius: 4px;">
|
106
|
-
<template v-slot:default="{ value, item }">
|
107
|
-
<div style="padding: 0 15px; line-height: 34px;">{{ item.label }}</div>
|
108
|
-
</template>
|
109
|
-
</n-draglist>
|
110
|
-
|
111
|
-
<n-table ref="table" v-model:items="virtualTree" unique-prop="uid" :render-expand="true" :item-height="36" style="margin-top: 30px; min-height: 500px;">
|
112
|
-
<n-table-column label="Label" type="string" prop="label"></n-table-column>
|
113
|
-
<n-table-column v-model="treeSelect" label="Matrix 1" type="select" :matrix="1" :width="120">
|
114
|
-
<template v-slot:default>Text wohoo</template>
|
115
|
-
</n-table-column>
|
116
|
-
<n-table-column v-model="treeMatrix" label="Matrix 2" type="matrix" :matrix="2" align="center" :fixed-width="120"></n-table-column>
|
117
|
-
<n-table-column v-model="treeMatrix" label="Matrix 4" type="matrix" :matrix="4" align="center" :fixed-width="120"></n-table-column>
|
118
|
-
<n-table-column v-model="treeMatrix" label="Matrix 8" type="matrix" :matrix="8" align="center" :fixed-width="120"></n-table-column>
|
119
|
-
<n-table-column v-model="treeMatrix" label="Matrix 16" type="matrix" :matrix="16" align="center" :fixed-width="120"></n-table-column>
|
120
|
-
</n-table>
|
121
|
-
|
122
|
-
</div>
|
123
|
-
</div>
|
124
|
-
|
125
|
-
<script>
|
126
|
-
(function (nano) {
|
127
|
-
|
128
|
-
'use strict';
|
129
|
-
|
130
|
-
pi.Dom.ready(function () {
|
131
|
-
|
132
|
-
let data = {};
|
133
|
-
|
134
|
-
data.sizes = {
|
135
|
-
xs: 'XS',
|
136
|
-
sm: 'SM',
|
137
|
-
md: 'MD',
|
138
|
-
lg: 'LG'
|
139
|
-
};
|
140
|
-
|
141
|
-
data.types = {
|
142
|
-
primary: 'Primary',
|
143
|
-
secondary: 'Secondary',
|
144
|
-
success: 'Success',
|
145
|
-
warning: 'Warning',
|
146
|
-
danger: 'Danger',
|
147
|
-
info: 'Info'
|
148
|
-
};
|
149
|
-
|
150
|
-
data.modals = {
|
151
|
-
default: 'Default',
|
152
|
-
preview: 'Preview',
|
153
|
-
};
|
154
|
-
|
155
|
-
data.demoConfig = {
|
156
|
-
'div': {
|
157
|
-
class: [
|
158
|
-
'foobar'
|
159
|
-
],
|
160
|
-
content: {
|
161
|
-
'NInput:page_id': {
|
162
|
-
model: {
|
163
|
-
path: 'page_id'
|
164
|
-
}
|
165
|
-
},
|
166
|
-
'NInput:page_id2': {
|
167
|
-
model: {
|
168
|
-
path: 'page_id'
|
169
|
-
}
|
170
|
-
}
|
171
|
-
}
|
172
|
-
}
|
173
|
-
};
|
174
|
-
|
175
|
-
data.configData = {};
|
176
|
-
|
177
|
-
data.testData = [];
|
178
|
-
|
179
|
-
let itemGenerator = function (count = 100, index = 0) {
|
180
|
-
return pi.Arr.each(pi.Arr.make(count), function (value) {
|
181
|
-
|
182
|
-
let id = pi.UUID();
|
183
|
-
|
184
|
-
return {
|
185
|
-
uid: id,
|
186
|
-
value: id,
|
187
|
-
matrix: 10,
|
188
|
-
label: `Item ${index++}`,
|
189
|
-
image: 'https://picsum.photos/400/400?' + id,
|
190
|
-
date: pi.Now.make().format('YYYY-MM-DD HH:mm:ss', true),
|
191
|
-
enabled: !! Math.floor(Math.random() * 2)
|
192
|
-
};
|
193
|
-
});
|
194
|
-
};
|
195
|
-
|
196
|
-
|
197
|
-
data.cascaderData = pi.Arr.each(itemGenerator(5), function (item) {
|
198
|
-
|
199
|
-
let children = pi.Arr.each(itemGenerator(5), function (item) {
|
200
|
-
return pi.Obj.assign(item, { children: itemGenerator(5) });
|
201
|
-
});
|
202
|
-
|
203
|
-
return pi.Obj.assign(item, { children: children });
|
204
|
-
});
|
205
|
-
|
206
|
-
data.virtualData = itemGenerator(10000);
|
207
|
-
|
208
|
-
data.virtualTree = pi.Arr.each(itemGenerator(1000), function (item) {
|
209
|
-
return pi.Obj.assign(item, { children: itemGenerator(20) });
|
210
|
-
});
|
211
|
-
|
212
|
-
data.treeSelect = null;
|
213
|
-
data.treeMatrix = [data.virtualTree[3]];
|
214
|
-
|
215
|
-
data.n_button = {
|
216
|
-
icon: 'fa fa-ghost', size: 'md', square: false, link: false, disabled: false
|
217
|
-
};
|
218
|
-
|
219
|
-
data.n_textarea = {
|
220
|
-
size: 'md', placeholder: 'Placeholder', autoRows: false, disabled: false
|
221
|
-
};
|
222
|
-
|
223
|
-
data.n_input = {
|
224
|
-
value: 'Demo', icon: 'fa fa-ghost', size: 'md', placeholder: 'Placeholder', disabled: false
|
225
|
-
};
|
226
|
-
|
227
|
-
data.n_number = {
|
228
|
-
value: 3, size: 'md', placeholder: '', disabled: false
|
229
|
-
};
|
230
|
-
|
231
|
-
data.n_select = {
|
232
|
-
size: 'md', allowCreate: false, clearable: true, disabled: false
|
233
|
-
};
|
234
|
-
|
235
|
-
data.n_cascader = {
|
236
|
-
size: 'md', type: 'primary', clearable: true, disabled: false
|
237
|
-
};
|
238
|
-
|
239
|
-
data.n_checkbox = {
|
240
|
-
size: 'md', type: 'primary', disabled: false
|
241
|
-
};
|
242
|
-
|
243
|
-
data.n_radio = {
|
244
|
-
size: 'md', type: 'primary', disabled: false
|
245
|
-
};
|
246
|
-
|
247
|
-
data.n_switch = {
|
248
|
-
size: 'md', disabled: false
|
249
|
-
};
|
250
|
-
|
251
|
-
data.n_datepicker = {
|
252
|
-
size: 'md', type: 'primary', clearable: true, disabled: false
|
253
|
-
};
|
254
|
-
|
255
|
-
data.n_timepicker = {
|
256
|
-
size: 'md', type: 'primary', clearable: true, disabled: false
|
257
|
-
};
|
258
|
-
|
259
|
-
data.n_transfer = {
|
260
|
-
size: 'md', type: 'primary', disabled: false
|
261
|
-
};
|
262
|
-
|
263
|
-
data.n_modal = {
|
264
|
-
size: 'md', type: 'default', disabled: false
|
265
|
-
};
|
266
|
-
|
267
|
-
data.n_confirm = {
|
268
|
-
size: 'md', type: 'primary', disabled: false
|
269
|
-
};
|
270
|
-
|
271
|
-
data.n_tabs = {
|
272
|
-
value: 'default', size: 'md', type: 'primary'
|
273
|
-
};
|
274
|
-
|
275
|
-
data.n_paginator = {
|
276
|
-
size: 'md', type: 'primary'
|
277
|
-
};
|
278
|
-
|
279
|
-
data.n_draggable = {
|
280
|
-
count: 0
|
281
|
-
};
|
282
|
-
|
283
|
-
data.n_loader = {
|
284
|
-
size: 'md', type: 'primary', visible: true
|
285
|
-
};
|
286
|
-
|
287
|
-
let methods = {};
|
288
|
-
|
289
|
-
methods.log = function (val) {
|
290
|
-
console.log(val || 'Log fired');
|
291
|
-
};
|
292
|
-
|
293
|
-
methods.notify = function (type) {
|
294
|
-
this.Notify('Lorem ipsum dolore', type);
|
295
|
-
};
|
296
|
-
|
297
|
-
var config = {
|
298
|
-
data: function () {
|
299
|
-
|
300
|
-
this.icons = pi.Obj.assign(nano.Icons, {
|
301
|
-
ghost: 'fa fa-ghost'
|
302
|
-
});
|
303
|
-
|
304
|
-
data.demoIcons = pi.Arr.reduce(pi.Obj.values(nano.Icons), function (merge, icon) {
|
305
|
-
return pi.Obj.assign(merge, { [icon]: icon });
|
306
|
-
}, {});
|
307
|
-
|
308
|
-
return data;
|
309
|
-
},
|
310
|
-
methods: methods
|
311
|
-
};
|
312
|
-
|
313
|
-
window.App = Vue.createApp(config);
|
314
|
-
|
315
|
-
window.App.config.devtools = true;
|
316
|
-
|
317
|
-
window.App.use(function (App) {
|
318
|
-
nano.Install(App);
|
319
|
-
});
|
320
|
-
|
321
|
-
window.App.mount('#app');
|
322
|
-
window.DEBUG_NDLIST = true;
|
323
|
-
});
|
324
|
-
|
325
|
-
})(window.nano);
|
326
|
-
</script>
|
327
|
-
</body>
|
328
|
-
</html>
|