@kizmann/nano-ui 1.0.15 → 1.1.0

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 (62) hide show
  1. package/dist/nano-ui.css +1 -1
  2. package/dist/nano-ui.js +1 -1
  3. package/dist/nano-ui.js.map +1 -1
  4. package/dist/themes/dark.css +1 -1
  5. package/dist/themes/glossy.dark.css +1 -0
  6. package/dist/themes/glossy.light.css +1 -0
  7. package/dist/themes/light.css +1 -1
  8. package/package.json +1 -1
  9. package/src/button/src/button/button.scss +4 -1
  10. package/src/collapse/src/collapse-item/collapse-item.jsx +1 -1
  11. package/src/draggable/src/draglist/draglist.jsx +1 -1
  12. package/src/draggable/src/draglist-item/draglist-item.jsx +5 -2
  13. package/src/info/src/info/info.jsx +1 -1
  14. package/src/modal/src/modal/modal.jsx +1 -1
  15. package/src/modal/src/modal/modal.scss +2 -2
  16. package/src/paginator/src/paginator/paginator.jsx +24 -29
  17. package/src/preview/index.js +2 -0
  18. package/src/preview/index.scss +1 -0
  19. package/src/preview/src/_tools/preview-handler.js +193 -0
  20. package/src/preview/src/_tools/preview-helper.js +142 -0
  21. package/src/preview/src/preview/preview.jsx +48 -115
  22. package/src/preview/src/preview/preview.scss +2 -1
  23. package/src/preview/src/preview-modal/preview-modal.jsx +156 -0
  24. package/src/preview/src/preview-modal/preview-modal.scss +56 -0
  25. package/src/preview/src/preview-video/preview-video.jsx +4 -60
  26. package/src/resizer/index.js +3 -1
  27. package/src/resizer/src/resizer/resizer-next.jsx +536 -0
  28. package/src/scrollbar/index.js +3 -1
  29. package/src/scrollbar/index.scss +1 -0
  30. package/src/scrollbar/src/scrollbar/scrollbar.scss +14 -8
  31. package/src/scrollbar/src/scrollbar-next/scrollbar-next.jsx +640 -0
  32. package/src/scrollbar/src/scrollbar-next/scrollbar-next.scss +148 -0
  33. package/src/select/src/select/select.jsx +12 -16
  34. package/src/select/src/select/select.scss +1 -1
  35. package/src/table/src/table/table.jsx +4 -7
  36. package/src/table/src/table/table.scss +15 -14
  37. package/src/table/src/table-cell/types/table-cell-image.jsx +9 -3
  38. package/src/table/src/table-column/table-column.jsx +10 -26
  39. package/src/tabs/src/tabs-item/tabs-item.jsx +1 -1
  40. package/src/tags/src/tags-item/tags-item.jsx +1 -2
  41. package/src/timepicker/src/timepicker-panel/timepicker-panel.jsx +15 -3
  42. package/src/timepicker/src/timepicker-panel/timepicker-panel.scss +2 -1
  43. package/src/virtualscroller/src/virtualscroller/virtualscroller.jsx +63 -30
  44. package/src/virtualscroller/src/virtualscroller/virtualscroller.scss +1 -0
  45. package/themes/glossy/button/index.scss +2 -0
  46. package/themes/glossy/button/src/button/button.scss +116 -0
  47. package/themes/glossy/button/src/button-group/button-group.scss +1 -0
  48. package/themes/glossy/index-dark.scss +3 -0
  49. package/themes/glossy/index-light.scss +3 -0
  50. package/themes/glossy/index.scss +43 -0
  51. package/themes/glossy/root/image/empty-default.svg +30 -0
  52. package/themes/glossy/root/image/empty-space.svg +34 -0
  53. package/themes/glossy/root/image/star-default.svg +10 -0
  54. package/themes/glossy/root/image/test.svg +1 -0
  55. package/themes/glossy/root/vars-dark.scss +234 -0
  56. package/themes/glossy/root/vars-light.scss +234 -0
  57. package/themes/glossy/root/vars.scss +233 -0
  58. package/themes/macos/index.scss +1 -0
  59. package/themes/macos/preview/index.scss +1 -0
  60. package/themes/macos/preview/src/preview-modal/preview-modal.scss +28 -0
  61. package/themes/macos/scrollbar/src/scrollbar/scrollbar.scss +1 -0
  62. package/themes/macos/table/src/table/table.scss +5 -0
@@ -0,0 +1,156 @@
1
+ import { Any, Event, UUID } from "@kizmann/pico-js";
2
+ import { NPreviewHandler } from "../_tools/preview-handler.js";
3
+ import { NPreviewHelper } from "../_tools/preview-helper.js";
4
+
5
+ export default {
6
+
7
+ name: 'NPreviewModal',
8
+
9
+ inject: {
10
+
11
+ NPreview: {
12
+ default: undefined
13
+ }
14
+
15
+ },
16
+
17
+ props: {
18
+
19
+ file: {
20
+ default()
21
+ {
22
+ return null;
23
+ }
24
+ },
25
+
26
+ index: {
27
+ default()
28
+ {
29
+ return 0;
30
+ },
31
+ type: [Number, String]
32
+ },
33
+
34
+ group: {
35
+ default()
36
+ {
37
+ return UUID();
38
+ },
39
+ type: [String]
40
+ },
41
+
42
+ },
43
+
44
+ data()
45
+ {
46
+ return { uid: UUID(), visible: false };
47
+ },
48
+
49
+ watch: {
50
+
51
+ visible: function (value) {
52
+ if ( value ) {
53
+ this.NPreview.$emit('slide');
54
+ }
55
+ }
56
+
57
+ },
58
+
59
+ mounted()
60
+ {
61
+ NPreviewHandler.create()
62
+ .append(this.$el);
63
+
64
+ NPreviewHandler.append(this);
65
+ },
66
+
67
+ beforeUnmount()
68
+ {
69
+ this.$el.remove();
70
+
71
+ NPreviewHandler.remove(this);
72
+ },
73
+
74
+ methods: {
75
+
76
+ openBox()
77
+ {
78
+ NPreviewHandler.open(this);
79
+ },
80
+
81
+ closeBox()
82
+ {
83
+ NPreviewHandler.close();
84
+ }
85
+
86
+ },
87
+
88
+ renderPrev()
89
+ {
90
+ let prevProps = {
91
+ size: 'lg', square: true, icon: 'fa fa-angle-left'
92
+ };
93
+
94
+ prevProps['onClick'] = () => {
95
+ this.gotoPrev();
96
+ };
97
+
98
+ return (
99
+ <div class="n-preview__prev">
100
+ <NButton {...prevProps} />
101
+ </div>
102
+ );
103
+ },
104
+
105
+ renderNext()
106
+ {
107
+ let nextProps = {
108
+ size: 'lg', square: true, icon: 'fa fa-angle-right'
109
+ };
110
+
111
+ nextProps['onClick'] = () => {
112
+ this.gotoNext();
113
+ };
114
+
115
+ return (
116
+ <div class="n-preview__next">
117
+ <NButton {...nextProps} />
118
+ </div>
119
+ );
120
+ },
121
+
122
+
123
+
124
+ renderImage()
125
+ {
126
+ let classList = [
127
+ 'n-preview-frame'
128
+ ];
129
+
130
+ let mime = NPreviewHelper.getMime(this.file);
131
+
132
+ if ( mime === 'image' ) {
133
+ return (<NPreviewImage class={classList} src={this.file} />);
134
+ }
135
+
136
+ if ( mime === 'video' ) {
137
+ return (<NPreviewVideo class={classList} src={this.file} />);
138
+ }
139
+
140
+ let props = {
141
+ type: mime, showSrc: this.showSrc,
142
+ };
143
+
144
+ return (<NPreviewPlain class={classList} src={this.file} {...props} />);
145
+ },
146
+
147
+ render()
148
+ {
149
+ if ( ! this.visible ) {
150
+ return null;
151
+ }
152
+
153
+ return this.ctor('renderImage')();
154
+ },
155
+
156
+ }
@@ -0,0 +1,56 @@
1
+ @import "../../../root/vars";
2
+
3
+ .n-preview-modal {
4
+ overflow: hidden;
5
+ position: fixed;
6
+ top: 0;
7
+ right: 0;
8
+ bottom: 0;
9
+ left: 0;
10
+ display: flex;
11
+ padding: 40px 80px;
12
+ }
13
+
14
+ .n-preview-modal:not(.n-ready) {
15
+ pointer-events: none;
16
+ opacity: 0;
17
+ }
18
+
19
+ .n-preview-modal__close {
20
+ cursor: pointer;
21
+ z-index: 100;
22
+ position: absolute;
23
+ top: 20px;
24
+ right: 20px;
25
+ display: flex;
26
+ align-items: center;
27
+ justify-content: center;
28
+ width: 40px;
29
+ height: 40px;
30
+ }
31
+
32
+ .n-preview-modal .n-preview-frame {
33
+ background: transparent !important;
34
+ }
35
+
36
+ .n-preview-modal__prev,
37
+ .n-preview-modal__next {
38
+ cursor: pointer;
39
+ z-index: 500;
40
+ position: absolute;
41
+ top: 50%;
42
+ display: flex;
43
+ align-items: center;
44
+ justify-content: center;
45
+ width: 40px;
46
+ height: 40px;
47
+ transform: translateY(-50%);
48
+ }
49
+
50
+ .n-preview-modal__prev {
51
+ left: 20px;
52
+ }
53
+
54
+ .n-preview-modal__next {
55
+ right: 20px;
56
+ }
@@ -1,58 +1,5 @@
1
1
  import { Obj, Arr, Str, Any, Dom } from "@kizmann/pico-js";
2
-
3
- window.resolveYoutube = function(url, fallback = null) {
4
-
5
- if ( ! Any.isString(url) ) {
6
- return fallback;
7
- }
8
-
9
- let host = url.match(/^https?:\/\/(www\.)?(youtube\.com|youtu\.be)/);
10
-
11
- if ( ! host ) {
12
- return fallback;
13
- }
14
-
15
- let id = url.match(/(\?v=.*?)(?=&|$)/);
16
-
17
- if ( id && id.length === 2 ) {
18
- return id[0].replace(/^\?v=/, '');
19
- }
20
-
21
- let path = url.match(/(\.be\/.*?)(?=\?|$)/);
22
-
23
- if ( path && path.length === 2 ) {
24
- return path[0].replace(/^\.be\//, '');
25
- }
26
-
27
- let frame = url.match(/(\/embed\/)(.*?$)/);
28
-
29
- if ( frame && frame.length === 3 ) {
30
- return frame[0].replace(/^\/embed\//, '');
31
- }
32
-
33
- return fallback;
34
- }
35
-
36
- window.resolveVimeo = function(url, fallback = null) {
37
-
38
- if ( ! Any.isString(url) ) {
39
- return fallback;
40
- }
41
-
42
- let host = url.match(/^https?:\/\/(www\.|player\.)?vimeo\.com/);
43
-
44
- if ( ! host ) {
45
- return fallback;
46
- }
47
-
48
- let path = url.match(/(\/[0-9]+)(&|$)/);
49
-
50
- if ( path && path.length === 3 ) {
51
- return path[0].replace(/(^\/|&$)/, '');
52
- }
53
-
54
- return fallback;
55
- }
2
+ import { NPreviewHelper } from "../_tools/preview-helper.js"
56
3
 
57
4
  export default {
58
5
 
@@ -117,7 +64,7 @@ export default {
117
64
 
118
65
  resolveYoutube()
119
66
  {
120
- let youtube = window.resolveYoutube(this.src);
67
+ let youtube = NPreviewHelper.getYoutubeKey(this.src);
121
68
 
122
69
  if ( ! youtube ) {
123
70
  return false;
@@ -132,7 +79,7 @@ export default {
132
79
 
133
80
  resolveVimeo()
134
81
  {
135
- let vimeo = window.resolveVimeo(this.src);
82
+ let vimeo = NPreviewHelper.getVimeoKey(this.src);
136
83
 
137
84
  if ( ! vimeo ) {
138
85
  return false;
@@ -173,12 +120,9 @@ export default {
173
120
  {
174
121
  let src = Obj.get(this.src, 'name', this.src);
175
122
 
176
- let extension = src.replace(/^.*?\.([^.?]+)(\?.*?)?$/,
177
- '$1');
178
-
179
123
  return (
180
124
  <video width="320" height="240" controls>
181
- <source src={this.tempSrc || this.src} type={`video/${extension}`} />
125
+ <source src={this.tempSrc || this.src} type={NPreviewHelper.getFullMime(src)} />
182
126
  </video>
183
127
  );
184
128
  },
@@ -1,5 +1,7 @@
1
1
  import Resizer from "./src/resizer/resizer.jsx";
2
+ import ResizerNext from "./src/resizer/resizer-next.jsx";
2
3
 
3
4
  export default function (App) {
4
- App.component(Resizer.name, Resizer);
5
+ // App.component(Resizer.name, Resizer);
6
+ App.component(ResizerNext.name, ResizerNext);
5
7
  }