@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.
Files changed (115) hide show
  1. package/dist/nano-ui.css +1 -0
  2. package/dist/nano-ui.js +4 -0
  3. package/dist/nano-ui.js.map +1 -0
  4. package/dist/themes/dark.css +1 -0
  5. package/dist/themes/light.css +1 -0
  6. package/package.json +7 -1
  7. package/.github/workflows/compile-deploy-publish.yml +0 -65
  8. package/assets/nano-ui-dark.svg +0 -19
  9. package/assets/nano-ui-light.svg +0 -19
  10. package/assets/pico-js-dark.svg +0 -19
  11. package/assets/pico-js-light.svg +0 -19
  12. package/babel.config.js +0 -17
  13. package/demos/builder.html +0 -411
  14. package/demos/button/index.html +0 -129
  15. package/demos/cascader/index.html +0 -127
  16. package/demos/chart/index.html +0 -53
  17. package/demos/checkbox/index.html +0 -97
  18. package/demos/config/index.html +0 -95
  19. package/demos/confirm/index.html +0 -78
  20. package/demos/datepicker/index.html +0 -69
  21. package/demos/draggable/index.html +0 -127
  22. package/demos/form/index.html +0 -83
  23. package/demos/form.html +0 -462
  24. package/demos/grid.html +0 -321
  25. package/demos/input/index.html +0 -100
  26. package/demos/map/index.html +0 -81
  27. package/demos/matrix/index.html +0 -104
  28. package/demos/modal/index.html +0 -98
  29. package/demos/overview.html +0 -1468
  30. package/demos/paginator/index.html +0 -58
  31. package/demos/popover/index.html +0 -103
  32. package/demos/radio/index.html +0 -71
  33. package/demos/resizer/index.html +0 -106
  34. package/demos/scrollbar.html +0 -328
  35. package/demos/select/index.html +0 -174
  36. package/demos/select.html +0 -164
  37. package/demos/style.css +0 -50
  38. package/demos/switch/index.html +0 -69
  39. package/demos/table/index.html +0 -126
  40. package/demos/tabs/index.html +0 -110
  41. package/demos/tabs.html +0 -293
  42. package/demos/textarea/index.html +0 -77
  43. package/demos/timepicker/index.html +0 -66
  44. package/demos/transfer/index.html +0 -88
  45. package/demos/wysiwyg/index.html +0 -49
  46. package/docs/README.md +0 -34
  47. package/docs/_sidebar.md +0 -37
  48. package/docs/files/data/draggable.md +0 -143
  49. package/docs/files/data/map.md +0 -1
  50. package/docs/files/data/paginator.md +0 -23
  51. package/docs/files/data/table.md +0 -247
  52. package/docs/files/data/virtualscroller.md +0 -2
  53. package/docs/files/form/button.md +0 -131
  54. package/docs/files/form/cascader.md +0 -164
  55. package/docs/files/form/checkbox.md +0 -179
  56. package/docs/files/form/datepicker.md +0 -78
  57. package/docs/files/form/form.md +0 -52
  58. package/docs/files/form/input.md +0 -90
  59. package/docs/files/form/radio.md +0 -150
  60. package/docs/files/form/select.md +0 -202
  61. package/docs/files/form/switch.md +0 -98
  62. package/docs/files/form/textarea.md +0 -102
  63. package/docs/files/form/timepicker.md +0 -78
  64. package/docs/files/form/transfer.md +0 -30
  65. package/docs/files/others/config.md +0 -261
  66. package/docs/files/others/confirm.md +0 -51
  67. package/docs/files/others/drawer.md +0 -32
  68. package/docs/files/others/loader.md +0 -22
  69. package/docs/files/others/map.md +0 -32
  70. package/docs/files/others/modal.md +0 -32
  71. package/docs/files/others/notification.md +0 -52
  72. package/docs/files/others/popover.md +0 -36
  73. package/docs/files/others/resizer.md +0 -8
  74. package/docs/files/others/scrollbar.md +0 -8
  75. package/docs/files/others/tabs.md +0 -32
  76. package/docs/index.template.html +0 -76
  77. package/docs/src/js/backup.js +0 -128
  78. package/docs/src/js/helper/item-helper.js +0 -0
  79. package/docs/src/js/index.js +0 -21
  80. package/docs/src/js/plugin/title-plugin.js +0 -0
  81. package/docs/src/js/plugin/vue-demo-plugin.js +0 -97
  82. package/docs/src/js/theme/basic.js +0 -31
  83. package/docs/src/js/theme/docsify.js +0 -11
  84. package/docs/src/scss/index-dark.scss +0 -3
  85. package/docs/src/scss/index-light.scss +0 -3
  86. package/docs/src/scss/index.scss +0 -15
  87. package/docs/src/scss/mixins/base.scss +0 -14
  88. package/docs/src/scss/mixins/grid.scss +0 -213
  89. package/docs/src/scss/mixins/media.scss +0 -35
  90. package/docs/src/scss/mixins/space.scss +0 -61
  91. package/docs/src/scss/root/vars-dark.scss +0 -15
  92. package/docs/src/scss/root/vars-light.scss +0 -15
  93. package/docs/src/scss/root/vars.scss +0 -110
  94. package/docs/src/scss/theme/default.scss +0 -123
  95. package/docs/src/scss/theme/header.scss +0 -147
  96. package/docs/src/scss/theme/layout.scss +0 -186
  97. package/docs/src/scss/theme/loader.scss +0 -63
  98. package/docs/src/scss/theme/markdown.scss +0 -79
  99. package/docs/src/scss/theme/navigation.scss +0 -58
  100. package/docs/src/scss/theme/progress.scss +0 -9
  101. package/docs/src/scss/theme/search.scss +0 -119
  102. package/docs/src/scss/theme/syntax.scss +0 -142
  103. package/docs/src/scss/theme/table.scss +0 -63
  104. package/favicon/apple-touch-icon.png +0 -0
  105. package/favicon/favicon-96x96.png +0 -0
  106. package/favicon/favicon.ico +0 -0
  107. package/favicon/favicon.svg +0 -3
  108. package/favicon/site.webmanifest +0 -21
  109. package/favicon/web-app-manifest-192x192.png +0 -0
  110. package/favicon/web-app-manifest-512x512.png +0 -0
  111. package/mix-manifest.json +0 -4
  112. package/postcss.config.js +0 -14
  113. package/webpack.config.js +0 -211
  114. package/webservy.json +0 -8
  115. /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>