@kizmann/nano-ui 1.0.0 → 1.0.2

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.
Files changed (139) hide show
  1. package/README.md +1 -114
  2. package/dist/nano-ui.css +1 -0
  3. package/dist/nano-ui.js +4 -0
  4. package/dist/nano-ui.js.map +1 -0
  5. package/dist/themes/dark.css +1 -0
  6. package/dist/themes/light.css +1 -0
  7. package/package.json +12 -6
  8. package/src/drawer/src/drawer/drawer.js +8 -8
  9. package/src/drawer/src/drawer/drawer.scss +8 -2
  10. package/src/form/src/form-item/form-item.scss +6 -1
  11. package/src/map/src/map/map.scss +1 -0
  12. package/src/map/src/map-marker/map-marker.js +1 -1
  13. package/src/resizer/src/resizer/resizer.js +6 -4
  14. package/src/root/vars.scss +1 -1
  15. package/src/scrollbar/src/scrollbar/scrollbar.next.js +1 -1
  16. package/src/scrollbar/src/scrollbar/scrollbar.scss +3 -2
  17. package/src/select/src/select/select.js +1 -1
  18. package/src/slider/src/slider/slider.js +5 -0
  19. package/src/slider/src/slider/slider.scss +4 -0
  20. package/src/table/src/table/table.scss +6 -2
  21. package/src/table/src/table-column/table-column.scss +0 -1
  22. package/themes/macos/button/src/button/button.scss +9 -0
  23. package/themes/macos/radio/src/radio/radio.scss +1 -1
  24. package/themes/macos/root/vars-dark.scss +1 -1
  25. package/themes/macos/root/vars-light.scss +1 -1
  26. package/themes/macos/root/vars.scss +0 -1
  27. package/themes/macos/scrollbar/src/scrollbar/scrollbar.scss +1 -1
  28. package/themes/macos/select/src/select/select.scss +1 -1
  29. package/themes/macos/slider/src/slider/slider.scss +23 -3
  30. package/themes/macos/tags/src/tags-item/tags-item.scss +4 -2
  31. package/.github/workflows/compile-deploy-publish.yml +0 -65
  32. package/assets/nano-ui-dark.svg +0 -19
  33. package/assets/nano-ui-light.svg +0 -19
  34. package/assets/pico-js-dark.svg +0 -19
  35. package/assets/pico-js-light.svg +0 -19
  36. package/babel.config.js +0 -17
  37. package/demos/builder.html +0 -411
  38. package/demos/button/index.html +0 -129
  39. package/demos/cascader/index.html +0 -127
  40. package/demos/chart/index.html +0 -53
  41. package/demos/checkbox/index.html +0 -97
  42. package/demos/config/index.html +0 -95
  43. package/demos/confirm/index.html +0 -78
  44. package/demos/datepicker/index.html +0 -69
  45. package/demos/draggable/index.html +0 -127
  46. package/demos/form/index.html +0 -83
  47. package/demos/form.html +0 -462
  48. package/demos/grid.html +0 -321
  49. package/demos/input/index.html +0 -100
  50. package/demos/map/index.html +0 -81
  51. package/demos/matrix/index.html +0 -104
  52. package/demos/modal/index.html +0 -98
  53. package/demos/overview.html +0 -1468
  54. package/demos/paginator/index.html +0 -58
  55. package/demos/popover/index.html +0 -103
  56. package/demos/radio/index.html +0 -71
  57. package/demos/resizer/index.html +0 -106
  58. package/demos/scrollbar.html +0 -328
  59. package/demos/select/index.html +0 -174
  60. package/demos/select.html +0 -164
  61. package/demos/style.css +0 -50
  62. package/demos/switch/index.html +0 -69
  63. package/demos/table/index.html +0 -126
  64. package/demos/tabs/index.html +0 -110
  65. package/demos/tabs.html +0 -293
  66. package/demos/textarea/index.html +0 -77
  67. package/demos/timepicker/index.html +0 -66
  68. package/demos/transfer/index.html +0 -88
  69. package/demos/wysiwyg/index.html +0 -49
  70. package/docs/README.md +0 -34
  71. package/docs/_sidebar.md +0 -37
  72. package/docs/files/data/draggable.md +0 -143
  73. package/docs/files/data/map.md +0 -1
  74. package/docs/files/data/paginator.md +0 -23
  75. package/docs/files/data/table.md +0 -247
  76. package/docs/files/data/virtualscroller.md +0 -2
  77. package/docs/files/form/button.md +0 -131
  78. package/docs/files/form/cascader.md +0 -164
  79. package/docs/files/form/checkbox.md +0 -179
  80. package/docs/files/form/datepicker.md +0 -78
  81. package/docs/files/form/form.md +0 -52
  82. package/docs/files/form/input.md +0 -90
  83. package/docs/files/form/radio.md +0 -150
  84. package/docs/files/form/select.md +0 -202
  85. package/docs/files/form/switch.md +0 -98
  86. package/docs/files/form/textarea.md +0 -102
  87. package/docs/files/form/timepicker.md +0 -78
  88. package/docs/files/form/transfer.md +0 -30
  89. package/docs/files/others/config.md +0 -261
  90. package/docs/files/others/confirm.md +0 -51
  91. package/docs/files/others/drawer.md +0 -32
  92. package/docs/files/others/loader.md +0 -22
  93. package/docs/files/others/map.md +0 -32
  94. package/docs/files/others/modal.md +0 -32
  95. package/docs/files/others/notification.md +0 -52
  96. package/docs/files/others/popover.md +0 -36
  97. package/docs/files/others/resizer.md +0 -8
  98. package/docs/files/others/scrollbar.md +0 -8
  99. package/docs/files/others/tabs.md +0 -32
  100. package/docs/index.template.html +0 -76
  101. package/docs/src/js/backup.js +0 -128
  102. package/docs/src/js/helper/item-helper.js +0 -0
  103. package/docs/src/js/index.js +0 -21
  104. package/docs/src/js/plugin/title-plugin.js +0 -0
  105. package/docs/src/js/plugin/vue-demo-plugin.js +0 -97
  106. package/docs/src/js/theme/basic.js +0 -31
  107. package/docs/src/js/theme/docsify.js +0 -11
  108. package/docs/src/scss/index-dark.scss +0 -3
  109. package/docs/src/scss/index-light.scss +0 -3
  110. package/docs/src/scss/index.scss +0 -15
  111. package/docs/src/scss/mixins/base.scss +0 -14
  112. package/docs/src/scss/mixins/grid.scss +0 -213
  113. package/docs/src/scss/mixins/media.scss +0 -35
  114. package/docs/src/scss/mixins/space.scss +0 -61
  115. package/docs/src/scss/root/vars-dark.scss +0 -15
  116. package/docs/src/scss/root/vars-light.scss +0 -15
  117. package/docs/src/scss/root/vars.scss +0 -110
  118. package/docs/src/scss/theme/default.scss +0 -123
  119. package/docs/src/scss/theme/header.scss +0 -147
  120. package/docs/src/scss/theme/layout.scss +0 -186
  121. package/docs/src/scss/theme/loader.scss +0 -63
  122. package/docs/src/scss/theme/markdown.scss +0 -79
  123. package/docs/src/scss/theme/navigation.scss +0 -58
  124. package/docs/src/scss/theme/progress.scss +0 -9
  125. package/docs/src/scss/theme/search.scss +0 -119
  126. package/docs/src/scss/theme/syntax.scss +0 -142
  127. package/docs/src/scss/theme/table.scss +0 -63
  128. package/favicon/apple-touch-icon.png +0 -0
  129. package/favicon/favicon-96x96.png +0 -0
  130. package/favicon/favicon.ico +0 -0
  131. package/favicon/favicon.svg +0 -3
  132. package/favicon/site.webmanifest +0 -21
  133. package/favicon/web-app-manifest-192x192.png +0 -0
  134. package/favicon/web-app-manifest-512x512.png +0 -0
  135. package/mix-manifest.json +0 -4
  136. package/postcss.config.js +0 -14
  137. package/webpack.config.js +0 -211
  138. package/webservy.json +0 -8
  139. /package/{.nojekyll → dist/.ignore.js} +0 -0
package/demos/grid.html DELETED
@@ -1,321 +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
-
14
-
15
- <script src="https://unpkg.com/moment"></script>
16
- <script src="https://unpkg.com/vue@3.4.6"></script>
17
- <script src="https://vankizmann.github.io/pico-js/dist/pico-js.js"></script>
18
- <script src="../dist/nano-ui.js"></script>
19
- <script src="https://unpkg.com/@google/markerclustererplus@4.0.1/dist/markerclustererplus.min.js"></script>
20
- <script src="https://maps.googleapis.com/maps/api/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
- <n-button type="primary" @click="$refs.virtualscroller.scrollIntoView(0)">
77
- Scroll to first item
78
- </n-button>
79
- </div>
80
- <div class="col--auto">
81
- <n-button type="primary" @click="$refs.virtualscroller.scrollIntoView(2000)">
82
- Scroll to item 2000
83
- </n-button>
84
- </div>
85
- <div class="col--auto">
86
- <n-button type="primary" @click="$refs.virtualscroller.scrollIntoView(7100)">
87
- Scroll to item 7100
88
- </n-button>
89
- </div>
90
- <div class="col--auto">
91
- <n-button type="primary" @click="$refs.virtualscroller.scrollIntoView(-1)">
92
- Scroll to last item
93
- </n-button>
94
- </div>
95
- </div>
96
-
97
- <n-virtualscroller ref="virtualscroller" :items="virtualData" :item-height="100" :item-width="200" style="height: 500px; margin-top: 30px; box-shadow: 0 0 2px 2px #dddedf; border-radius: 4px;">
98
- <template v-slot:default="{ value }">
99
- <div style="padding: 0 15px; line-height: 30px;">{{ value.label }}</div>
100
- </template>
101
- </n-virtualscroller>
102
-
103
- <n-draggrid ref="draggrid" v-model:items="virtualTree" :item-height="100" :item-width="200" style="height: 500px; margin-top: 30px; box-shadow: 0 0 2px 2px #dddedf; border-radius: 4px;">
104
- <template v-slot:default="{ item }">
105
- <div style="width: 200px; height: 100px; padding: 0 15px; line-height: 30px;">{{ item.label }}</div>
106
- </template>
107
- </n-draggrid>
108
-
109
- <n-draggrid ref="draggrid" v-model:items="testData" :item-height="100" :item-width="200" :threshold="0" style="height: 500px; margin-top: 30px; box-shadow: 0 0 2px 2px #dddedf; border-radius: 4px;">
110
- <template v-slot:default="{ item }">
111
- <div style="width: 200px; height: 100px; padding: 0 15px; line-height: 30px;">{{ item.label }}</div>
112
- </template>
113
- </n-draggrid>
114
-
115
-
116
- </div>
117
- </div>
118
-
119
- <script>
120
- (function (nano) {
121
-
122
- 'use strict';
123
-
124
- pi.Dom.ready(function () {
125
-
126
- let data = {};
127
-
128
- data.sizes = {
129
- xs: 'XS',
130
- sm: 'SM',
131
- md: 'MD',
132
- lg: 'LG'
133
- };
134
-
135
- data.types = {
136
- primary: 'Primary',
137
- secondary: 'Secondary',
138
- success: 'Success',
139
- warning: 'Warning',
140
- danger: 'Danger',
141
- info: 'Info'
142
- };
143
-
144
- data.modals = {
145
- default: 'Default',
146
- preview: 'Preview',
147
- };
148
-
149
- data.demoConfig = {
150
- 'div': {
151
- class: [
152
- 'foobar'
153
- ],
154
- content: {
155
- 'NInput:page_id': {
156
- model: {
157
- path: 'page_id'
158
- }
159
- },
160
- 'NInput:page_id2': {
161
- model: {
162
- path: 'page_id'
163
- }
164
- }
165
- }
166
- }
167
- };
168
-
169
- data.configData = {};
170
-
171
- data.testData = [];
172
-
173
- let itemGenerator = function (count = 100, index = 0) {
174
- return pi.Arr.each(pi.Arr.make(count), function (value) {
175
-
176
- let id = pi.UUID();
177
-
178
- return {
179
- id: id,
180
- value: id,
181
- matrix: 10,
182
- label: `Item ${index++}`,
183
- image: 'https://picsum.photos/400/400?' + id,
184
- date: pi.Now.make().format('YYYY-MM-DD HH:mm:ss', true),
185
- enabled: !! Math.floor(Math.random() * 2)
186
- };
187
- });
188
- };
189
-
190
-
191
- data.cascaderData = pi.Arr.each(itemGenerator(5), function (item) {
192
-
193
- let children = pi.Arr.each(itemGenerator(5), function (item) {
194
- return pi.Obj.assign(item, { children: itemGenerator(5) });
195
- });
196
-
197
- return pi.Obj.assign(item, { children: children });
198
- });
199
-
200
- data.virtualData = itemGenerator(10000);
201
-
202
- data.virtualTree = pi.Arr.each(itemGenerator(50), function (item) {
203
- return pi.Obj.assign(item, { children: itemGenerator(20) });
204
- });
205
-
206
- data.treeSelect = null;
207
- data.treeMatrix = [data.virtualTree[3]];
208
-
209
- data.n_button = {
210
- icon: 'fa fa-ghost', size: 'md', square: false, link: false, disabled: false
211
- };
212
-
213
- data.n_textarea = {
214
- size: 'md', placeholder: 'Placeholder', autoRows: false, disabled: false
215
- };
216
-
217
- data.n_input = {
218
- value: 'Demo', icon: 'fa fa-ghost', size: 'md', placeholder: 'Placeholder', disabled: false
219
- };
220
-
221
- data.n_number = {
222
- value: 3, size: 'md', placeholder: '', disabled: false
223
- };
224
-
225
- data.n_select = {
226
- size: 'md', allowCreate: false, clearable: true, disabled: false
227
- };
228
-
229
- data.n_cascader = {
230
- size: 'md', type: 'primary', clearable: true, disabled: false
231
- };
232
-
233
- data.n_checkbox = {
234
- size: 'md', type: 'primary', disabled: false
235
- };
236
-
237
- data.n_radio = {
238
- size: 'md', type: 'primary', disabled: false
239
- };
240
-
241
- data.n_switch = {
242
- size: 'md', disabled: false
243
- };
244
-
245
- data.n_datepicker = {
246
- size: 'md', type: 'primary', clearable: true, disabled: false
247
- };
248
-
249
- data.n_timepicker = {
250
- size: 'md', type: 'primary', clearable: true, disabled: false
251
- };
252
-
253
- data.n_transfer = {
254
- size: 'md', type: 'primary', disabled: false
255
- };
256
-
257
- data.n_modal = {
258
- size: 'md', type: 'default', disabled: false
259
- };
260
-
261
- data.n_confirm = {
262
- size: 'md', type: 'primary', disabled: false
263
- };
264
-
265
- data.n_tabs = {
266
- value: 'default', size: 'md', type: 'primary'
267
- };
268
-
269
- data.n_paginator = {
270
- size: 'md', type: 'primary'
271
- };
272
-
273
- data.n_draggable = {
274
- count: 0
275
- };
276
-
277
- data.n_loader = {
278
- size: 'md', type: 'primary', visible: true
279
- };
280
-
281
- let methods = {};
282
-
283
- methods.log = function (val) {
284
- console.log(val || 'Log fired');
285
- };
286
-
287
- methods.notify = function (type) {
288
- this.Notify('Lorem ipsum dolore', type);
289
- };
290
-
291
- var config = {
292
- data: function () {
293
-
294
- this.icons = pi.Obj.assign(nano.Icons, {
295
- ghost: 'fa fa-ghost'
296
- });
297
-
298
- data.demoIcons = pi.Arr.reduce(pi.Obj.values(nano.Icons), function (merge, icon) {
299
- return pi.Obj.assign(merge, { [icon]: icon });
300
- }, {});
301
-
302
- return data;
303
- },
304
- methods: methods
305
- };
306
-
307
- window.App = Vue.createApp(config);
308
-
309
- window.App.config.devtools = true;
310
-
311
- window.App.use(function (App) {
312
- nano.Install(App);
313
- });
314
-
315
- window.App.mount('#app');
316
- });
317
-
318
- })(window.nano);
319
- </script>
320
- </body>
321
- </html>
@@ -1,100 +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 Input</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" :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="Small">
29
- <n-input :value="form.name" size="small" />
30
- </n-form-item>
31
-
32
- <n-form-item label="Default">
33
- <n-input v-model="form.name" size="default" />
34
- </n-form-item>
35
-
36
- <n-form-item label="Large">
37
- <n-input v-model="form.name" size="large" />
38
- </n-form-item>
39
-
40
- <n-form-item label="Disabled">
41
- <n-input v-model="form.name" :disabled="true" />
42
- </n-form-item>
43
-
44
- <n-form-item label="Info">
45
- <n-input v-model="form.name" icon="fa fa-times" :icon-disabled="form.name === ''" @icon-click="form.name = ''" />
46
- </n-form-item>
47
-
48
- <n-form-item label="Password">
49
- <n-input v-model="form.name" :native-type="nativeType" :icon="icon" @icon-click="changeNative" />
50
- </n-form-item>
51
-
52
- <n-form-item label="Object">
53
- <pre>{{ form }}</pre>
54
- </n-form-item>
55
-
56
- </n-form>
57
- </div>
58
-
59
- <script>
60
- pi.Dom.ready(() => {
61
-
62
- Vue.config.devtools = true;
63
-
64
- var config = {
65
-
66
- computed: {
67
-
68
- icon: function() {
69
- return this.nativeType === 'text' ?
70
- 'fa fa-eye-slash' : 'fa fa-eye';
71
- }
72
-
73
- },
74
-
75
- methods: {
76
-
77
- changeNative: function() {
78
- this.nativeType = this.nativeType === 'text' ?
79
- 'password' : 'text';
80
- }
81
-
82
- },
83
-
84
- data: function() {
85
-
86
- var form = {
87
- name: ''
88
- };
89
-
90
- return {
91
- form: form, inverse: false, nativeType: 'password'
92
- };
93
- }
94
- };
95
-
96
- window.App = new Vue(config).$mount('#app');
97
- })
98
- </script>
99
- </body>
100
- </html>
@@ -1,81 +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 Map</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://maps.googleapis.com/maps/api/js?key=AIzaSyDvJ7NNFrrSL13b3xEB07Itw0luJSHDTmE"></script>
15
-
16
- <script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.6.10/vue.min.js"></script>
17
- <script src="https://vankizmann.github.io/@kizmann/pico-js/dist/@kizmann/pico-js.js"></script>
18
- <script src="../../dist/nano-ui.js"></script>
19
-
20
- </head>
21
- <body>
22
-
23
- <div id="app">
24
- <n-form :form="form">
25
-
26
- <n-form-item :label="trans('Address')">
27
- <n-button-group>
28
- <n-input v-model="address"></n-input>
29
- <n-button @click="setMarkerByAddress">{{ trans('Set marker') }}</n-button>
30
- </n-button-group>
31
- </n-form-item>
32
-
33
- <n-form-item>
34
- <n-map>
35
- <n-map-marker ref="marker" :lat.sync="form.lat" :lng.sync="form.lng" :draggable="true">
36
- <div style="padding: 20px; background: yellow; color: red;">Huhu!</div>
37
- </n-map-marker>
38
- </n-map>
39
- </n-form-item>
40
-
41
- <n-form-item label="Object">
42
- <pre>{{ form }}</pre>
43
- </n-form-item>
44
-
45
- </n-form>
46
- </div>
47
-
48
- <script>
49
- pi.Dom.ready(() => {
50
-
51
- Vue.config.devtools = true;
52
-
53
- var config = {
54
-
55
- data: function() {
56
-
57
- var form = {
58
- lat: 53.565000, lng: 10.042280
59
- };
60
-
61
- return {
62
- form: form, address: ''
63
- };
64
- },
65
-
66
- methods: {
67
-
68
- setMarkerByAddress()
69
- {
70
- this.$refs.marker.setMarkerByAddress(this.address);
71
- }
72
-
73
- }
74
-
75
- };
76
-
77
- window.App = new Vue(config).$mount('#app');
78
- })
79
- </script>
80
- </body>
81
- </html>
@@ -1,104 +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 Matrix</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="Tree">
29
- <n-matrix v-model="form.cascade" :items="form.value" title-prop="label" :multiple="false">
30
- <n-matrix-column label="Test"></n-matrix-column>
31
- </n-matrix>
32
- </n-form-item>
33
-
34
- </n-form>
35
- </div>
36
-
37
- <script>
38
- (function (Nano) {
39
-
40
- 'use strict';
41
-
42
- pi.Dom.ready(function () {
43
-
44
- Vue.config.devtools = true;
45
-
46
- var config = {
47
- data: function() {
48
-
49
- let total = 0;
50
-
51
- let childGenerator = function(count, depth, current) {
52
-
53
- if ( count === undefined ) {
54
- count = 3;
55
- }
56
-
57
- if ( depth === undefined ) {
58
- depth = 3;
59
- }
60
-
61
- if ( current === undefined ) {
62
- current = 1;
63
- }
64
-
65
- let children = Array(
66
- Math.floor((Math.random() * count) + 2)
67
- ).fill(null);
68
-
69
- pi.Arr.map(children, function (item) {
70
-
71
- total++;
72
-
73
- item = {
74
- label: 'Item ' + total,
75
- id: 'value-' + total,
76
- children: []
77
- };
78
-
79
- if ( current < depth ) {
80
- item.children = childGenerator(count, depth, current + 1);
81
- }
82
-
83
- return item;
84
- });
85
-
86
- return children;
87
- };
88
-
89
- var form = {
90
- value: childGenerator(), cascade: []
91
- };
92
-
93
- return { form: form, inverse: false };
94
- }
95
- };
96
-
97
- window.App = new Vue(config).$mount('#app');
98
-
99
- });
100
-
101
- })(window.Nano);
102
- </script>
103
- </body>
104
- </html>