@kizmann/nano-ui 0.9.2 → 0.9.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (62) hide show
  1. package/demos/builder.html +401 -0
  2. package/demos/overview.html +1 -1
  3. package/dist/nano-ui.css +1 -1
  4. package/dist/nano-ui.js +3 -3
  5. package/dist/nano-ui.js.map +1 -1
  6. package/dist/themes/light.css +1 -1
  7. package/package.json +2 -2
  8. package/src/config/index.js +6 -0
  9. package/src/config/index.scss +3 -0
  10. package/src/config/src/builder/builder.js +866 -0
  11. package/src/config/src/builder/builder.scss +272 -0
  12. package/src/config/src/builder/prototypes/button/n-button-group.js +11 -0
  13. package/src/config/src/builder/prototypes/button/n-button.js +37 -0
  14. package/src/config/src/builder/prototypes/cascader/n-cascader.js +11 -0
  15. package/src/config/src/builder/prototypes/checkbox/n-checkbox-group.js +11 -0
  16. package/src/config/src/builder/prototypes/checkbox/n-checkbox.js +11 -0
  17. package/src/config/src/builder/prototypes/confirm/n-confirm.js +11 -0
  18. package/src/config/src/builder/prototypes/datepicker/n-datepicker.js +11 -0
  19. package/src/config/src/builder/prototypes/datetimepicker/n-datetimepicker.js +11 -0
  20. package/src/config/src/builder/prototypes/durationpicker/n-durationpicker.js +11 -0
  21. package/src/config/src/builder/prototypes/empty/n-empty.js +11 -0
  22. package/src/config/src/builder/prototypes/form/n-form-group.js +13 -0
  23. package/src/config/src/builder/prototypes/form/n-form-item.js +13 -0
  24. package/src/config/src/builder/prototypes/form/n-form.js +11 -0
  25. package/src/config/src/builder/prototypes/html/div.js +13 -0
  26. package/src/config/src/builder/prototypes/html/nano.js +11 -0
  27. package/src/config/src/builder/prototypes/html/span.js +11 -0
  28. package/src/config/src/builder/prototypes/info/n-info-column.js +11 -0
  29. package/src/config/src/builder/prototypes/info/n-info.js +11 -0
  30. package/src/config/src/builder/prototypes/input/n-input.js +40 -0
  31. package/src/config/src/builder/prototypes/input-number/n-input-number.js +49 -0
  32. package/src/config/src/builder/prototypes/loader/n-loader.js +11 -0
  33. package/src/config/src/builder/prototypes/modal/n-modal.js +11 -0
  34. package/src/config/src/builder/prototypes/popover/n-popover-group.js +11 -0
  35. package/src/config/src/builder/prototypes/popover/n-popover-item.js +11 -0
  36. package/src/config/src/builder/prototypes/popover/n-popover.js +11 -0
  37. package/src/config/src/builder/prototypes/radio/n-radio-group.js +11 -0
  38. package/src/config/src/builder/prototypes/radio/n-radio.js +11 -0
  39. package/src/config/src/builder/prototypes/rating/n-rating.js +11 -0
  40. package/src/config/src/builder/prototypes/select/n-select.js +11 -0
  41. package/src/config/src/builder/prototypes/slider/n-slider.js +11 -0
  42. package/src/config/src/builder/prototypes/switch/n-switch.js +31 -0
  43. package/src/config/src/builder/prototypes/table/n-table-column.js +11 -0
  44. package/src/config/src/builder/prototypes/table/n-table.js +11 -0
  45. package/src/config/src/builder/prototypes/tabs/n-tabs-item.js +11 -0
  46. package/src/config/src/builder/prototypes/tabs/n-tabs.js +11 -0
  47. package/src/config/src/builder/prototypes/tags/n-tags-item.js +11 -0
  48. package/src/config/src/builder/prototypes/tags/n-tags.js +11 -0
  49. package/src/config/src/builder/prototypes/textarea/n-textarea.js +11 -0
  50. package/src/config/src/builder/prototypes/timepicker/n-timepicker.js +11 -0
  51. package/src/config/src/builder/prototypes/transfer/n-transfer.js +11 -0
  52. package/src/config/src/reference-panel/reference-panel.js +196 -0
  53. package/src/config/src/reference-panel/reference-panel.scss +194 -0
  54. package/src/config/src/reference-picker/reference-picker.js +146 -0
  55. package/src/config/src/reference-picker/reference-picker.scss +3 -0
  56. package/src/form/src/form-group/form-group.js +5 -1
  57. package/src/index.scss +1 -0
  58. package/src/input/src/input/input.js +2 -0
  59. package/src/popover/src/popover/popover.scss +3 -3
  60. package/src/root/vars.scss +23 -0
  61. package/webservy.json +3 -1
  62. package/servy.json +0 -6
@@ -0,0 +1,11 @@
1
+ import { Locale } from "@kizmann/pico-js";
2
+
3
+ global.NanoBuilderTypes['NRadioGroup'] = Locale.trans('NRadioGroup');
4
+
5
+ global.NanoBuilderIndexies['NRadioGroup'] = {
6
+ childs: false, props: {}
7
+ };
8
+
9
+ global.NanoBuilderIndexies['NRadioGroup']['props'] = {
10
+ //
11
+ };
@@ -0,0 +1,11 @@
1
+ import { Locale } from "@kizmann/pico-js";
2
+
3
+ global.NanoBuilderTypes['NRadio'] = Locale.trans('NRadio');
4
+
5
+ global.NanoBuilderIndexies['NRadio'] = {
6
+ childs: false, props: {}
7
+ };
8
+
9
+ global.NanoBuilderIndexies['NRadio']['props'] = {
10
+ //
11
+ };
@@ -0,0 +1,11 @@
1
+ import { Locale } from "@kizmann/pico-js";
2
+
3
+ global.NanoBuilderTypes['NRating'] = Locale.trans('NRating');
4
+
5
+ global.NanoBuilderIndexies['NRating'] = {
6
+ childs: false, props: {}
7
+ };
8
+
9
+ global.NanoBuilderIndexies['NRating']['props'] = {
10
+ //
11
+ };
@@ -0,0 +1,11 @@
1
+ import { Locale } from "@kizmann/pico-js";
2
+
3
+ global.NanoBuilderTypes['NSelect'] = Locale.trans('NSelect');
4
+
5
+ global.NanoBuilderIndexies['NSelect'] = {
6
+ childs: false, props: {}
7
+ };
8
+
9
+ global.NanoBuilderIndexies['NSelect']['props'] = {
10
+ //
11
+ };
@@ -0,0 +1,11 @@
1
+ import { Locale } from "@kizmann/pico-js";
2
+
3
+ global.NanoBuilderTypes['NSlider'] = Locale.trans('NSlider');
4
+
5
+ global.NanoBuilderIndexies['NSlider'] = {
6
+ childs: false, props: {}
7
+ };
8
+
9
+ global.NanoBuilderIndexies['NSlider']['props'] = {
10
+ //
11
+ };
@@ -0,0 +1,31 @@
1
+ import { Locale } from "@kizmann/pico-js";
2
+
3
+ global.NanoBuilderTypes['NSwitch'] = Locale.trans('NSwitch');
4
+
5
+ global.NanoBuilderIndexies['NSwitch'] = {
6
+ childs: true, props: {}
7
+ };
8
+
9
+ global.NanoBuilderIndexies['NSwitch']['props'] = {
10
+ modelValue: {
11
+ for: ['binds', 'props'], type: 'Any'
12
+ },
13
+ onValue: {
14
+ for: ['binds', 'props'], type: 'Any'
15
+ },
16
+ offValue: {
17
+ for: ['binds', 'props'], type: 'Any'
18
+ },
19
+ onType: {
20
+ for: ['binds', 'props'], type: 'String', options: global.NanoPrototypeTypes
21
+ },
22
+ offType: {
23
+ for: ['binds', 'props'], type: 'String', options: global.NanoPrototypeTypes
24
+ },
25
+ size: {
26
+ for: ['binds', 'props'], type: 'String', options: global.NanoPrototypeSizes
27
+ },
28
+ disabled: {
29
+ for: ['binds', 'props'], type: 'Boolean', options: global.NanoPrototypeBools
30
+ },
31
+ };
@@ -0,0 +1,11 @@
1
+ import { Locale } from "@kizmann/pico-js";
2
+
3
+ global.NanoBuilderTypes['NTableColumn'] = Locale.trans('NTableColumn');
4
+
5
+ global.NanoBuilderIndexies['NTableColumn'] = {
6
+ childs: false, props: {}
7
+ };
8
+
9
+ global.NanoBuilderIndexies['NTableColumn']['props'] = {
10
+ //
11
+ };
@@ -0,0 +1,11 @@
1
+ import { Locale } from "@kizmann/pico-js";
2
+
3
+ global.NanoBuilderTypes['NTable'] = Locale.trans('NTable');
4
+
5
+ global.NanoBuilderIndexies['NTable'] = {
6
+ childs: false, props: {}
7
+ };
8
+
9
+ global.NanoBuilderIndexies['NTable']['props'] = {
10
+ //
11
+ };
@@ -0,0 +1,11 @@
1
+ import { Locale } from "@kizmann/pico-js";
2
+
3
+ global.NanoBuilderTypes['NTabsItem'] = Locale.trans('NTabsItem');
4
+
5
+ global.NanoBuilderIndexies['NTabsItem'] = {
6
+ childs: false, props: {}
7
+ };
8
+
9
+ global.NanoBuilderIndexies['NTabsItem']['props'] = {
10
+ //
11
+ };
@@ -0,0 +1,11 @@
1
+ import { Locale } from "@kizmann/pico-js";
2
+
3
+ global.NanoBuilderTypes['NTabs'] = Locale.trans('NTabs');
4
+
5
+ global.NanoBuilderIndexies['NTabs'] = {
6
+ childs: false, props: {}
7
+ };
8
+
9
+ global.NanoBuilderIndexies['NTabs']['props'] = {
10
+ //
11
+ };
@@ -0,0 +1,11 @@
1
+ import { Locale } from "@kizmann/pico-js";
2
+
3
+ global.NanoBuilderTypes['NTagsItem'] = Locale.trans('NTagsItem');
4
+
5
+ global.NanoBuilderIndexies['NTagsItem'] = {
6
+ childs: false, props: {}
7
+ };
8
+
9
+ global.NanoBuilderIndexies['NTagsItem']['props'] = {
10
+ //
11
+ };
@@ -0,0 +1,11 @@
1
+ import { Locale } from "@kizmann/pico-js";
2
+
3
+ global.NanoBuilderTypes['NTags'] = Locale.trans('NTags');
4
+
5
+ global.NanoBuilderIndexies['NTags'] = {
6
+ childs: false, props: {}
7
+ };
8
+
9
+ global.NanoBuilderIndexies['NTags']['props'] = {
10
+ //
11
+ };
@@ -0,0 +1,11 @@
1
+ import { Locale } from "@kizmann/pico-js";
2
+
3
+ global.NanoBuilderTypes['NButton'] = Locale.trans('NButton');
4
+
5
+ global.NanoBuilderIndexies['NButton'] = {
6
+ childs: false, props: {}
7
+ };
8
+
9
+ global.NanoBuilderIndexies['NButton']['props'] = {
10
+ //
11
+ };
@@ -0,0 +1,11 @@
1
+ import { Locale } from "@kizmann/pico-js";
2
+
3
+ global.NanoBuilderTypes['NTimepicker'] = Locale.trans('NTimepicker');
4
+
5
+ global.NanoBuilderIndexies['NTimepicker'] = {
6
+ childs: false, props: {}
7
+ };
8
+
9
+ global.NanoBuilderIndexies['NTimepicker']['props'] = {
10
+ //
11
+ };
@@ -0,0 +1,11 @@
1
+ import { Locale } from "@kizmann/pico-js";
2
+
3
+ global.NanoBuilderTypes['NTransfer'] = Locale.trans('NTransfer');
4
+
5
+ global.NanoBuilderIndexies['NTransfer'] = {
6
+ childs: false, props: {}
7
+ };
8
+
9
+ global.NanoBuilderIndexies['NTransfer']['props'] = {
10
+ //
11
+ };
@@ -0,0 +1,196 @@
1
+ import { Arr, Obj, Any } from "@kizmann/pico-js";
2
+
3
+ export default {
4
+
5
+ name: 'NReferencePanel',
6
+
7
+ props: {
8
+
9
+ modelValue: {
10
+ default()
11
+ {
12
+ return "";
13
+ },
14
+ type: [String]
15
+ },
16
+
17
+ model: {
18
+ default()
19
+ {
20
+ return {};
21
+ },
22
+ type: [Object]
23
+ },
24
+
25
+ scope: {
26
+ default()
27
+ {
28
+ return {};
29
+ },
30
+ type: [Object]
31
+ },
32
+
33
+ },
34
+
35
+ data()
36
+ {
37
+ return {
38
+ expanded: [], selected: null, modelTree: this.buildTree(this.model, '$model'), scopeTree: this.buildTree(this.scope, '$scope')
39
+ };
40
+ },
41
+
42
+ methods: {
43
+
44
+ buildTree(value, path = '')
45
+ {
46
+ let result = {};
47
+
48
+ if ( ! Any.isPlain(value) && ! Obj.get(value, '__v_skip') ) {
49
+ return result;
50
+ }
51
+
52
+ for(var key in value) {
53
+
54
+ let [ref, val] = [
55
+ `${path}.${key}`, value[key]
56
+ ];
57
+
58
+ if ( Any.isPlain(val) ) {
59
+ val = this.buildTree(val, ref);
60
+ }
61
+
62
+ let type = typeof val;
63
+
64
+ if ( Any.isArray(val) ) {
65
+ type = 'array';
66
+ }
67
+
68
+ result[key] = {
69
+ path: ref, value: val, type: type
70
+ };
71
+
72
+ }
73
+
74
+ return result;
75
+ },
76
+
77
+ submitItem(value)
78
+ {
79
+ this.$emit('update:modelValue', value.path);
80
+ },
81
+
82
+ selectItem(value)
83
+ {
84
+ this.selected = value;
85
+ },
86
+
87
+ expandItem(value)
88
+ {
89
+ if ( value.type === 'object' ) {
90
+ Arr.toggle(this.expanded, value.path);
91
+ }
92
+ }
93
+
94
+ },
95
+
96
+ renderLeaf(value, key)
97
+ {
98
+ let classList = [
99
+ 'n-reference-panel__item',
100
+ 'n-reference-panel__item--' + value.type,
101
+ ];
102
+
103
+ if ( Obj.get(this.selected, 'path') === value.path) {
104
+ classList.push('is-selected');
105
+ }
106
+
107
+ if ( value.type === 'object' ) {
108
+ classList.push('has-childs');
109
+ }
110
+
111
+ if ( Arr.has(this.expanded, value.path) ) {
112
+ classList.push('is-expanded');
113
+ }
114
+
115
+ return (
116
+ <div class={classList} onDblclick={() => this.submitItem(value)}>
117
+ <div class="n-reference-panel__expand" onClick={() => this.expandItem(value)}>
118
+ <i class="fa fa-angle-right"></i>
119
+ </div>
120
+ <div class="n-reference-panel__name" onClick={() => this.selectItem(value)}>
121
+ {key}
122
+ </div>
123
+ <div class="n-reference-panel__type" onClick={() => this.selectItem(value)}>
124
+ {value.type}
125
+ </div>
126
+ <div class="n-reference-panel__pick" onClick={() => this.submitItem(value)}>
127
+ <i class="fa fa-expand"></i>
128
+ </div>
129
+ </div>
130
+ );
131
+ },
132
+
133
+ renderTree(value, key)
134
+ {
135
+ let childItems = Arr.each(value.value, (value, key) => {
136
+ return this.ctor('renderItem')(value, key);
137
+ });
138
+
139
+ let childHtml = (
140
+ <div class="n-reference-panel__childs">
141
+ {childItems}
142
+ </div>
143
+ );
144
+
145
+ if ( ! Arr.has(this.expanded, value.path) ) {
146
+ childHtml = null;
147
+ }
148
+
149
+ return [this.ctor('renderLeaf')(value, key), childHtml];
150
+ },
151
+
152
+ renderItem(value, key)
153
+ {
154
+ if ( value.type === 'object' ) {
155
+ return this.ctor('renderTree')(value, key);
156
+ }
157
+
158
+ return this.ctor('renderLeaf')(value, key);
159
+ },
160
+
161
+ renderModel()
162
+ {
163
+ let modelHtml = Arr.each(this.modelTree, (value, key) => {
164
+ return this.ctor('renderItem')(value, key);
165
+ });
166
+
167
+ return (
168
+ <div class="n-reference-panel__model">
169
+ {modelHtml}
170
+ </div>
171
+ );
172
+ },
173
+
174
+ renderScope()
175
+ {
176
+ let scopeHtml = Arr.each(this.scopeTree, (value, key) => {
177
+ return this.ctor('renderItem')(value, key);
178
+ });
179
+
180
+ return (
181
+ <div class="n-reference-panel__scope">
182
+ {scopeHtml}
183
+ </div>
184
+ );
185
+ },
186
+
187
+ render()
188
+ {
189
+ return (
190
+ <div class="n-reference-panel">
191
+ {[this.ctor('renderModel')(), this.ctor('renderScope')()]}
192
+ </div>
193
+ );
194
+ }
195
+
196
+ }
@@ -0,0 +1,194 @@
1
+ .n-reference-panel {
2
+ position: relative;
3
+ display: flex;
4
+ flex-direction: row;
5
+ }
6
+
7
+ .n-reference-panel:not(.in-modal) {
8
+ border: 1px solid $color-gray-10;
9
+ }
10
+
11
+ .n-reference-panel.in-modal {
12
+ position: absolute;
13
+ top: 0;
14
+ left: 0;
15
+ width: 100%;
16
+ height: 100%;
17
+ }
18
+
19
+ .n-reference-panel:after {
20
+ content: '\00a0';
21
+ position: absolute;
22
+ top: 0;
23
+ left: 50%;
24
+ width: 6px;
25
+ height: 100%;
26
+ background: $color-gray-05;
27
+ border-left: 1px solid $color-gray-10;
28
+ border-right: 1px solid $color-gray-10;
29
+ transform: translateX(-50%);
30
+ }
31
+
32
+ .n-reference-panel__model,
33
+ .n-reference-panel__scope {
34
+ position: relative;
35
+ flex: 0 0 auto;
36
+ width: 50%;
37
+ display: flex;
38
+ align-items: flex-start;
39
+ flex-direction: column;
40
+ padding: 8px;
41
+ }
42
+
43
+ .n-reference-panel__model:before,
44
+ .n-reference-panel__scope:before {
45
+ position: absolute;
46
+ top: 10px;
47
+ display: inline-block;
48
+ font-size: 13px;
49
+ font-family: monospace;
50
+ color: rgba($color-black, 0.4);
51
+ }
52
+
53
+ .n-reference-panel__model {
54
+ padding-right: 11px;
55
+ }
56
+
57
+ .n-reference-panel__model:before {
58
+ content: '$model';
59
+ right: 13px;
60
+ }
61
+
62
+ .n-reference-panel__scope {
63
+ padding-left: 11px;
64
+ }
65
+
66
+ .n-reference-panel__scope:before {
67
+ content: '$scope';
68
+ right: 10px;
69
+ }
70
+
71
+ .n-reference-panel__item {
72
+ cursor: default;
73
+ user-select: none;
74
+ flex: 0 0 auto;
75
+ display: inline-flex;
76
+ flex-direction: row;
77
+ align-items: center;
78
+ padding: 5px 8px;
79
+ font-family: monospace;
80
+ border-radius: 3px;
81
+ }
82
+
83
+ .n-reference-panel__item.is-selected {
84
+ background: rgba($color-black, 0.1);
85
+ }
86
+
87
+ .n-reference-panel__item--function.is-selected {
88
+ background: rgba($color-success, 0.1);
89
+ }
90
+
91
+ .n-reference-panel__item--string.is-selected,
92
+ .n-reference-panel__item--boolean.is-selected,
93
+ .n-reference-panel__item--number.is-selected {
94
+ background: rgba($color-warning, 0.1);
95
+ }
96
+
97
+ .n-reference-panel__item--object.is-selected {
98
+ background: rgba($color-info, 0.1);
99
+ }
100
+
101
+ .n-reference-panel__item--array.is-selected {
102
+ background: rgba($color-danger, 0.1);
103
+ }
104
+
105
+ .n-reference-panel__expand,
106
+ .n-reference-panel__pick {
107
+ cursor: pointer;
108
+ display: inline-block;
109
+ text-align: center;
110
+ line-height: 16px;
111
+ width: 16px;
112
+ height: 16px;
113
+ }
114
+
115
+ .n-reference-panel__expand {
116
+ margin-right: 5px;
117
+ }
118
+
119
+ .n-reference-panel__item.is-expanded .n-reference-panel__expand {
120
+ transform: rotate(90deg);
121
+ }
122
+
123
+ .n-reference-panel__item:not(.has-childs) .n-reference-panel__expand {
124
+ cursor: not-allowed;
125
+ }
126
+
127
+ .n-reference-panel__pick {
128
+ margin-left: 5px;
129
+ }
130
+
131
+ .n-reference-panel__expand i,
132
+ .n-reference-panel__pick i {
133
+ font-size: 12px;
134
+ color: rgba($color-black, 0.4);
135
+ }
136
+
137
+ .n-reference-panel__item:not(.has-childs) .n-reference-panel__expand i {
138
+ opacity: 0.3;
139
+ }
140
+
141
+ .n-reference-panel__name {
142
+ margin-right: 5px;
143
+ font-size: 13px;
144
+ }
145
+
146
+ .n-reference-panel__type {
147
+ display: inline-block;
148
+ padding: 2px 6px 1px;
149
+ background: $color-gray-10;
150
+ border-radius: 3px;
151
+ font-size: 11px;
152
+ font-family: monospace;
153
+ }
154
+
155
+ .n-reference-panel__item--function .n-reference-panel__type {
156
+ color: rgba(darken($color-success, 20%), 0.7);
157
+ background: rgba($color-success, 0.2);
158
+ }
159
+
160
+ .n-reference-panel__item--string .n-reference-panel__type,
161
+ .n-reference-panel__item--boolean .n-reference-panel__type,
162
+ .n-reference-panel__item--number .n-reference-panel__type {
163
+ color: rgba(darken($color-warning, 20%), 0.7);
164
+ background: rgba($color-warning, 0.2);
165
+ }
166
+
167
+ .n-reference-panel__item--array .n-reference-panel__type {
168
+ color: rgba(darken($color-danger, 20%), 0.7);
169
+ background: rgba($color-danger, 0.2);
170
+ }
171
+
172
+ .n-reference-panel__item--object .n-reference-panel__type {
173
+ color: rgba(darken($color-info, 30%), 0.7);
174
+ background: rgba($color-info, 0.2);
175
+ }
176
+
177
+ .n-reference-panel__childs {
178
+ position: relative;
179
+ display: flex;
180
+ flex-direction: column;
181
+ align-items: flex-start;
182
+ padding-left: 19px;
183
+ }
184
+
185
+ .n-reference-panel__childs:before {
186
+ content: '\00a0';
187
+ position: absolute;
188
+ top: 3px;
189
+ left: 15px;
190
+ display: block;
191
+ width: 1px;
192
+ height: calc(100% - 6px);
193
+ background: $color-gray-05;
194
+ }