@kizmann/nano-ui 0.9.3 → 0.9.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (59) hide show
  1. package/demos/builder.html +401 -0
  2. package/dist/nano-ui.css +1 -1
  3. package/dist/nano-ui.js +3 -3
  4. package/dist/nano-ui.js.map +1 -1
  5. package/dist/themes/light.css +1 -1
  6. package/package.json +2 -2
  7. package/src/config/index.js +6 -0
  8. package/src/config/index.scss +3 -0
  9. package/src/config/src/builder/builder.js +866 -0
  10. package/src/config/src/builder/builder.scss +272 -0
  11. package/src/config/src/builder/prototypes/button/n-button-group.js +11 -0
  12. package/src/config/src/builder/prototypes/button/n-button.js +37 -0
  13. package/src/config/src/builder/prototypes/cascader/n-cascader.js +11 -0
  14. package/src/config/src/builder/prototypes/checkbox/n-checkbox-group.js +11 -0
  15. package/src/config/src/builder/prototypes/checkbox/n-checkbox.js +11 -0
  16. package/src/config/src/builder/prototypes/confirm/n-confirm.js +11 -0
  17. package/src/config/src/builder/prototypes/datepicker/n-datepicker.js +11 -0
  18. package/src/config/src/builder/prototypes/datetimepicker/n-datetimepicker.js +11 -0
  19. package/src/config/src/builder/prototypes/durationpicker/n-durationpicker.js +11 -0
  20. package/src/config/src/builder/prototypes/empty/n-empty.js +11 -0
  21. package/src/config/src/builder/prototypes/form/n-form-group.js +13 -0
  22. package/src/config/src/builder/prototypes/form/n-form-item.js +13 -0
  23. package/src/config/src/builder/prototypes/form/n-form.js +11 -0
  24. package/src/config/src/builder/prototypes/html/div.js +13 -0
  25. package/src/config/src/builder/prototypes/html/nano.js +11 -0
  26. package/src/config/src/builder/prototypes/html/span.js +11 -0
  27. package/src/config/src/builder/prototypes/info/n-info-column.js +11 -0
  28. package/src/config/src/builder/prototypes/info/n-info.js +11 -0
  29. package/src/config/src/builder/prototypes/input/n-input.js +40 -0
  30. package/src/config/src/builder/prototypes/input-number/n-input-number.js +49 -0
  31. package/src/config/src/builder/prototypes/loader/n-loader.js +11 -0
  32. package/src/config/src/builder/prototypes/modal/n-modal.js +11 -0
  33. package/src/config/src/builder/prototypes/popover/n-popover-group.js +11 -0
  34. package/src/config/src/builder/prototypes/popover/n-popover-item.js +11 -0
  35. package/src/config/src/builder/prototypes/popover/n-popover.js +11 -0
  36. package/src/config/src/builder/prototypes/radio/n-radio-group.js +11 -0
  37. package/src/config/src/builder/prototypes/radio/n-radio.js +11 -0
  38. package/src/config/src/builder/prototypes/rating/n-rating.js +11 -0
  39. package/src/config/src/builder/prototypes/select/n-select.js +11 -0
  40. package/src/config/src/builder/prototypes/slider/n-slider.js +11 -0
  41. package/src/config/src/builder/prototypes/switch/n-switch.js +31 -0
  42. package/src/config/src/builder/prototypes/table/n-table-column.js +11 -0
  43. package/src/config/src/builder/prototypes/table/n-table.js +11 -0
  44. package/src/config/src/builder/prototypes/tabs/n-tabs-item.js +11 -0
  45. package/src/config/src/builder/prototypes/tabs/n-tabs.js +11 -0
  46. package/src/config/src/builder/prototypes/tags/n-tags-item.js +11 -0
  47. package/src/config/src/builder/prototypes/tags/n-tags.js +11 -0
  48. package/src/config/src/builder/prototypes/textarea/n-textarea.js +11 -0
  49. package/src/config/src/builder/prototypes/timepicker/n-timepicker.js +11 -0
  50. package/src/config/src/builder/prototypes/transfer/n-transfer.js +11 -0
  51. package/src/config/src/reference-panel/reference-panel.js +196 -0
  52. package/src/config/src/reference-panel/reference-panel.scss +194 -0
  53. package/src/config/src/reference-picker/reference-picker.js +146 -0
  54. package/src/config/src/reference-picker/reference-picker.scss +3 -0
  55. package/src/form/src/form-group/form-group.js +5 -1
  56. package/src/index.scss +1 -0
  57. package/src/input/src/input/input.js +2 -0
  58. package/src/root/vars.scss +23 -0
  59. package/webservy.json +3 -1
@@ -0,0 +1,401 @@
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 href="https://fonts.googleapis.com/css2?family=Inter:wght@400;700&display=swap" rel="stylesheet">
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
+ <link rel="stylesheet" href="../style.css">
16
+
17
+ <style>
18
+
19
+ div {
20
+ box-sizing: border-box;
21
+ }
22
+
23
+ body {
24
+ font-family: 'Inter', 'Helvetica', 'Arial', sans-serif;
25
+ font-size: 14px;
26
+ height: 100%;
27
+ overflow-x: hidden;
28
+ }
29
+
30
+ #app {
31
+ overflow-x: hidden;
32
+ }
33
+
34
+ .app-container {
35
+ max-width: 1440px;
36
+ margin: 0 auto;
37
+ padding: 20px 30px 40px 30px;
38
+ }
39
+
40
+ .app-options {
41
+ border-bottom: 1px solid rgba(110, 110, 110, 0.15);
42
+ margin-bottom: 20px;
43
+ }
44
+
45
+ h2 {
46
+ font-size: 32px;
47
+ font-weight: bold;
48
+ padding-bottom: 10px;
49
+ margin: 50px 0 15px;
50
+ border-bottom: 1px solid rgba(110, 110, 110, 0.15);
51
+ }
52
+
53
+ </style>
54
+
55
+ <script src="https://unpkg.com/moment"></script>
56
+ <script src="https://unpkg.com/vue@3.4.6"></script>
57
+ <script src="https://vankizmann.github.io/pico-js/dist/pico-js.js"></script>
58
+ <script src="../dist/nano-ui.js"></script>
59
+ <script src="https://unpkg.com/@google/markerclustererplus@4.0.1/dist/markerclustererplus.min.js"></script>
60
+ <script src="https://maps.googleapis.com/maps/api/js"></script>
61
+
62
+ </head>
63
+ <body class="n-demo">
64
+
65
+ <div id="app">
66
+ <div class="app-container">
67
+ <n-builder :model-value="demoConfigNext" :model="demoModel" :scope="demoScope"></n-builder>
68
+ </div>
69
+ </div>
70
+
71
+ <script>
72
+ (function (nano) {
73
+
74
+ 'use strict';
75
+
76
+ pi.Dom.ready(function () {
77
+
78
+ let data = {};
79
+
80
+ data.demoModel = {
81
+ test: true,
82
+ label: 'foobar',
83
+ option: {
84
+ url: 'http://', redirect: 'AHA'
85
+ }
86
+ };
87
+
88
+ data.demoScope = {
89
+ testme: () => {
90
+ console.log('abc');
91
+ }
92
+ }
93
+
94
+ data.sizes = {
95
+ xs: 'XS',
96
+ sm: 'SM',
97
+ md: 'MD',
98
+ lg: 'LG'
99
+ };
100
+
101
+ data.types = {
102
+ primary: 'Primary',
103
+ secondary: 'Secondary',
104
+ success: 'Success',
105
+ warning: 'Warning',
106
+ danger: 'Danger',
107
+ info: 'Info'
108
+ };
109
+
110
+ data.modals = {
111
+ default: 'Default',
112
+ preview: 'Preview',
113
+ };
114
+
115
+ pi.Obj.set(data, 'demoConfigNext.NFormGroup:root', {
116
+ vShow: [
117
+ '$model.test'
118
+ ],
119
+ props: {
120
+ label: '$model.label',
121
+ icon: 'fa fa-directions'
122
+ }
123
+ });
124
+
125
+ pi.Obj.set(data, 'demoConfigNext.NFormGroup:root.content.NFormItem:url', {
126
+ localized: [
127
+ 'props.label'
128
+ ],
129
+ props: {
130
+ label: pi.Locale.trans('URL'),
131
+ test: function() {
132
+ console.log(123);
133
+ }
134
+ },
135
+ content: {
136
+ 'NInput': {
137
+ binds: {
138
+ modelValue: '$model.option.url'
139
+ }
140
+ }
141
+ }
142
+ });
143
+
144
+ pi.Obj.set(data, 'demoConfigNext.NFormGroup:root.content.NFormItem:menu', {
145
+ props: {
146
+ label: pi.Locale.trans('Menu')
147
+ },
148
+ content: {
149
+ 'NInput': {
150
+ binds: {
151
+ modelValue: '$model.option.redirect'
152
+ }
153
+ }
154
+ }
155
+ });
156
+
157
+ data.demoConfig = {
158
+ 'NFormGroup:00': {
159
+ $props: {
160
+ label: pi.Locale.trans('Redirect'),
161
+ icon: 'fa fa-directions'
162
+ },
163
+ content: {
164
+ 'div:00': {
165
+ class: 'grid grid--row grid--wrap grid--30',
166
+ content: {
167
+ 'div:00': {
168
+ class: 'col--1-1 col--1-2@sm',
169
+ content: {
170
+ 'NFormItem:00': {
171
+ $props: {
172
+ label: pi.Locale.trans('URL')
173
+ },
174
+ content: {
175
+ 'NInput:00': {
176
+ model: {
177
+ path: 'option.url'
178
+ }
179
+ }
180
+ }
181
+ },
182
+ }
183
+ },
184
+ 'div:10': {
185
+ class: 'col--1-1 col--1-2@sm',
186
+ content: {
187
+ 'NFormItem:00': {
188
+ $props: {
189
+ label: pi.Locale.trans('Menu')
190
+ },
191
+ content: {
192
+ 'NInput:00': {
193
+ model: {
194
+ path: 'option.redirect'
195
+ }
196
+ }
197
+ }
198
+ }
199
+ }
200
+ }
201
+ }
202
+ }
203
+ }
204
+ },
205
+ };
206
+
207
+ data.configData = { label: 'asdasda' };
208
+
209
+ data.testData = [];
210
+
211
+ let itemGenerator = function (count = 100, index = 0) {
212
+ return pi.Arr.each(pi.Arr.make(count), function (value) {
213
+
214
+ let id = pi.UUID();
215
+
216
+ return {
217
+ id: id,
218
+ value: id,
219
+ matrix: 10,
220
+ label: `Item ${index++}`,
221
+ image: 'https://picsum.photos/300/300.jpg?' + id,
222
+ date: pi.Now.make('now').format('YYYY-MM-DD HH:mm:ss', true),
223
+ enabled: !! Math.floor(Math.random() * 2)
224
+ };
225
+ });
226
+ };
227
+
228
+
229
+ data.cascaderData = pi.Arr.each(itemGenerator(5), function (item) {
230
+
231
+ let children = pi.Arr.each(itemGenerator(5), function (item) {
232
+ return pi.Obj.assign(item, { children: itemGenerator(5) });
233
+ });
234
+
235
+ return pi.Obj.assign(item, { children: children });
236
+ });
237
+
238
+ data.virtualData = itemGenerator(10000);
239
+
240
+ data.virtualTree = pi.Arr.each(itemGenerator(100), function (item) {
241
+ return pi.Obj.assign(item, { children: itemGenerator(10) });
242
+ });
243
+
244
+
245
+ data.virtualItem = null;
246
+
247
+ data.treeSelect = null;
248
+ data.treeMatrix = [data.virtualTree[3]];
249
+
250
+ data.foobar = 'huhu';
251
+
252
+ data.n_theme = pi.Cookie.get('theme', 'light', 'string');
253
+
254
+ pi.Dom.find('#theme').attr('href', '../dist/themes/' +
255
+ data.n_theme + '.css');
256
+
257
+ data.n_form = {
258
+ size: 'md', conditional: true, modelValue: false
259
+ };
260
+
261
+ data.n_tags = {
262
+ size: 'md',
263
+ };
264
+
265
+ data.n_rating = {
266
+ size: 'md', choice: 'No stars|:value star|:value stars', disabled: false
267
+ };
268
+
269
+ data.n_button = {
270
+ icon: 'fa fa-ghost', size: 'md', square: false, link: false, disabled: false
271
+ };
272
+
273
+ data.n_textarea = {
274
+ size: 'md', placeholder: 'Placeholder', autoRows: false, disabled: false
275
+ };
276
+
277
+ data.n_input = {
278
+ value: 'Demo', icon: 'fa fa-ghost', size: 'md', placeholder: 'Placeholder', disabled: false
279
+ };
280
+
281
+ data.n_number = {
282
+ test: '', value: 3, size: 'md', placeholder: '', disabled: false, minValue: 0, maxValue: 10
283
+ };
284
+
285
+ data.n_select = {
286
+ size: 'md', allowCreate: false, clearable: true, disabled: false
287
+ };
288
+
289
+ data.n_cascader = {
290
+ size: 'md', type: 'primary', clearable: true, disabled: false
291
+ };
292
+
293
+ data.n_checkbox = {
294
+ size: 'md', type: 'primary', disabled: false
295
+ };
296
+
297
+ data.n_radio = {
298
+ size: 'md', type: 'primary', disabled: false
299
+ };
300
+
301
+ data.n_slider = {
302
+ size: 'md', disabled: false, temp_value: 30,
303
+ };
304
+
305
+ data.n_switch = {
306
+ size: 'md', disabled: false
307
+ };
308
+
309
+ data.n_datepicker = {
310
+ size: 'md', type: 'primary', clearable: true, disabled: false
311
+ };
312
+
313
+ data.n_timepicker = {
314
+ size: 'md', type: 'primary', clearable: true, disabled: false
315
+ };
316
+
317
+ data.n_datetimepicker = {
318
+ size: 'md', type: 'primary', clearable: true, disabled: false
319
+ };
320
+
321
+ data.n_durationpicker = {
322
+ size: 'md', type: 'primary', clearable: true, disabled: false, modelValue: 124521
323
+ };
324
+
325
+ data.n_transfer = {
326
+ size: 'md', type: 'primary', disabled: false
327
+ };
328
+
329
+ data.n_modal = {
330
+ size: 'md', type: 'default', disabled: false
331
+ };
332
+
333
+ data.n_confirm = {
334
+ size: 'md', type: 'primary', disabled: false
335
+ };
336
+
337
+ data.n_tabs = {
338
+ value: 'default', size: 'md', type: 'primary'
339
+ };
340
+
341
+ data.n_collapse = {
342
+ value: ['default'], size: 'md', type: 'primary', relative: false
343
+ };
344
+
345
+ data.n_paginator = {
346
+ size: 'md', type: 'primary'
347
+ };
348
+
349
+ data.n_draggable = {
350
+ count: 0
351
+ };
352
+
353
+ data.n_loader = {
354
+ size: 'md', type: 'primary', visible: true
355
+ };
356
+
357
+ data.n_map = {
358
+ lat: 53.55, lng: 9.99
359
+ };
360
+
361
+ data.n_preview = {
362
+ file: null
363
+ };
364
+
365
+ let methods = {};
366
+
367
+ var config = {
368
+ data: function () {
369
+
370
+ this.icons = pi.Obj.assign(nano.Icons, {
371
+ ghost: 'fa fa-ghost'
372
+ });
373
+
374
+ data.demoIcons = pi.Arr.reduce(pi.Obj.values(nano.Icons), function (merge, icon) {
375
+ return pi.Obj.assign(merge, { [icon]: icon });
376
+ }, {});
377
+
378
+ return data;
379
+ },
380
+ mounted: function () {
381
+ let self = this;
382
+ },
383
+ methods: methods
384
+ };
385
+
386
+ window.App = Vue.createApp(config);
387
+
388
+ window.App.config.devtools = true;
389
+
390
+ window.App.use(function (App) {
391
+ nano.Install(App);
392
+ });
393
+
394
+ window.App.mount('#app');
395
+ });
396
+
397
+ })(window.nano);
398
+ </script>
399
+
400
+ </body>
401
+ </html>