jsuites 4.9.21 → 4.9.25

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.
package/compile.php ADDED
@@ -0,0 +1,86 @@
1
+ <?php
2
+
3
+ function g($type = '', $modules = null, $excluded = null) {
4
+ if ($handle = opendir('src')) {
5
+ $js = '';
6
+ $wc = '';
7
+ $css = '';
8
+ while (false !== ($entry = readdir($handle))) {
9
+ if ($entry != "." && $entry != ".." && (! isset($modules) || in_array(substr($entry, 0, strpos($entry, '.')), $modules)) && (! isset($excluded) || ! in_array(substr($entry, 0, strpos($entry, '.')), $excluded))) {
10
+ echo $entry . "\n";
11
+ if (substr($entry, -3) == 'css') {
12
+ $css .= file_get_contents('src/'.$entry) . "\r\n\r\n";
13
+ } else if (substr($entry, -15) == 'webcomponent.js') {
14
+ $wc .= file_get_contents('src/'.$entry) . "\r\n\r\n";
15
+ } else {
16
+ $js .= file_get_contents('src/'.$entry) . "\r\n\r\n";
17
+ }
18
+ }
19
+ }
20
+ closedir($handle);
21
+
22
+ $js = "/**
23
+ * (c) jSuites Javascript Web Components
24
+ *
25
+ * Website: https://jsuites.net
26
+ * Description: Create amazing web based applications.
27
+ *
28
+ * MIT License
29
+ *
30
+ */
31
+ ;(function (global, factory) {
32
+ typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
33
+ typeof define === 'function' && define.amd ? define(factory) :
34
+ global.jSuites = factory();
35
+ }(this, (function () {
36
+
37
+ 'use strict';
38
+
39
+ $js
40
+
41
+ return jSuites;
42
+
43
+ })));";
44
+
45
+ $wc = "
46
+ /**
47
+ * (c) jSuites Javascript Web Components
48
+ *
49
+ * Website: https://jsuites.net
50
+ * Description: Create amazing web based applications.
51
+ *
52
+ * MIT License
53
+ *
54
+ */
55
+
56
+ $wc
57
+ ";
58
+
59
+ $css = "
60
+ /**
61
+ * (c) jSuites Javascript Web Components
62
+ *
63
+ * Website: https://jsuites.net
64
+ * Description: Create amazing web based applications.
65
+ *
66
+ * MIT License
67
+ *
68
+ */
69
+
70
+ $css
71
+ ";
72
+
73
+
74
+ file_put_contents("dist/jsuites{$type}.js", $js);
75
+ file_put_contents("dist/jsuites{$type}.css", $css);
76
+ if (! $type) {
77
+ file_put_contents('dist/jsuites.webcomponents.js', $wc);
78
+ }
79
+ }
80
+ }
81
+
82
+ g('.basic', [ 'a', 'ajax', 'animation', 'calendar', 'color', 'contextmenu', 'dropdown', 'editor', 'image', 'helpers', 'lazyloading', 'loading', 'mask', 'notification', 'rating', 'tabs', 'toolbar', 'sorting', 'picker', 'palette' ]);
83
+ g('.layout', [ 'layout', 'template', 'login', 'buttons', 'organogram', 'timeline', 'chat', 'menu', 'crop', 'signature', 'heatmap', 'player', 'floating' ]);
84
+ g('', null, [ 'app', 'dialog', 'refresh', 'layout', 'template', 'login', 'buttons', 'organogram', 'timeline', 'chat', 'menu', 'crop', 'signature', 'heatmap', 'player', 'floating', 'progress' ]);
85
+
86
+ echo "Done!\n";
@@ -108,6 +108,28 @@ div[data-before]:before {
108
108
  position: relative;
109
109
  }
110
110
 
111
+ .jphoto {
112
+ position: relative;
113
+ border: 1px dotted #eee;
114
+ cursor: pointer;
115
+ box-sizing: border-box;
116
+ width: 100%;
117
+ max-height: 100%;
118
+ min-height: 180px;
119
+ display: flex;
120
+ align-items: center;
121
+ justify-content: center;
122
+ }
123
+
124
+ .jphoto:empty:before {
125
+ content: "\e2c3";
126
+ font-family: "Material Icons";
127
+ font-size: 90px;
128
+ color: #eee;
129
+ width: 100%;
130
+ height: 100%;
131
+ }
132
+
111
133
  .jremove {
112
134
  opacity: 0.2;
113
135
  filter: alpha(opacity=20);
@@ -791,6 +813,7 @@ div[data-before]:before {
791
813
  cursor: default;
792
814
  font-size: 11px;
793
815
  font-family:sans-serif;
816
+ text-align: left;
794
817
  }
795
818
 
796
819
  .jcontextmenu > div::before {
@@ -1833,6 +1856,8 @@ div[data-before]:before {
1833
1856
 
1834
1857
  .jpicker-focus > .jpicker-content {
1835
1858
  display: block;
1859
+ overflow-y: auto;
1860
+ min-width: 100%;
1836
1861
  }
1837
1862
 
1838
1863
  .jpicker-content > div:hover {
@@ -1853,6 +1878,7 @@ div[data-before]:before {
1853
1878
  flex-wrap: wrap;
1854
1879
  }
1855
1880
 
1881
+
1856
1882
  .jrating {
1857
1883
  display:flex;
1858
1884
  }
@@ -17,7 +17,7 @@
17
17
 
18
18
  var jSuites = function(options) {
19
19
  var obj = {}
20
- var version = '4.9.21';
20
+ var version = '4.9.22';
21
21
 
22
22
  var find = function(DOMElement, component) {
23
23
  if (DOMElement[component.type] && DOMElement[component.type] == component) {
@@ -231,7 +231,7 @@ jSuites.ajax = (function(options, complete) {
231
231
 
232
232
  if (options.data) {
233
233
  // Parse object to variables format
234
- var parseData = function(value, key) {
234
+ var parseData = function (value, key) {
235
235
  var vars = [];
236
236
  var keys = Object.keys(value);
237
237
  if (keys.length) {
@@ -242,7 +242,9 @@ jSuites.ajax = (function(options, complete) {
242
242
  var k = keys[i];
243
243
  }
244
244
 
245
- if (typeof(value[keys[i]]) == 'object') {
245
+ if (value[k] instanceof FileList) {
246
+ vars[k] = value[keys[i]];
247
+ } else if (typeof (value[keys[i]]) == 'object') {
246
248
  var r = parseData(value[keys[i]], k);
247
249
  var o = Object.keys(r);
248
250
  for (var j = 0; j < o.length; j++) {
@@ -257,18 +259,21 @@ jSuites.ajax = (function(options, complete) {
257
259
  return vars;
258
260
  }
259
261
 
260
- var data = [];
261
262
  var d = parseData(options.data);
262
263
  var k = Object.keys(d);
263
- for (var i = 0; i < k.length; i++) {
264
- data.push(k[i] + '=' + encodeURIComponent(d[k[i]]));
265
- }
266
264
 
267
- if (options.method == 'GET' && data.length > 0) {
268
- if (options.url.indexOf('?') < 0) {
269
- options.url += '?';
265
+ // Data form
266
+ var data = new FormData();
267
+ for (var i = 0; i < k.length; i++) {
268
+ if (d[k[i]] instanceof FileList) {
269
+ if (d[k[i]].length) {
270
+ for (var j = 0; j < d[k[i]].length; j++) {
271
+ data.append(k[i], d[k[i]][j], d[k[i]][j].name);
272
+ }
273
+ }
274
+ } else {
275
+ data.append(k[i], d[k[i]]);
270
276
  }
271
- options.url += data.join('&');
272
277
  }
273
278
  }
274
279
 
@@ -276,16 +281,25 @@ jSuites.ajax = (function(options, complete) {
276
281
  httpRequest.open(options.method, options.url, true);
277
282
  httpRequest.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
278
283
 
284
+ // Content type
285
+ if (options.contentType) {
286
+ httpRequest.setRequestHeader('Content-Type', options.contentType);
287
+ }
288
+
289
+ // Headers
279
290
  if (options.method == 'POST') {
280
291
  httpRequest.setRequestHeader('Accept', 'application/json');
281
- httpRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
282
292
  } else {
283
- if (options.dataType == 'json') {
284
- httpRequest.setRequestHeader('Content-Type', 'text/json');
285
- } else if (options.dataType == 'blob') {
293
+ if (options.dataType == 'blob') {
286
294
  httpRequest.responseType = "blob";
287
- } else if (options.dataType == 'html') {
288
- httpRequest.setRequestHeader('Content-Type', 'text/html');
295
+ } else {
296
+ if (! options.contentType) {
297
+ if (options.dataType == 'json') {
298
+ httpRequest.setRequestHeader('Content-Type', 'text/json');
299
+ } else if (options.dataType == 'html') {
300
+ httpRequest.setRequestHeader('Content-Type', 'text/html');
301
+ }
302
+ }
289
303
  }
290
304
  }
291
305
 
@@ -396,7 +410,11 @@ jSuites.ajax = (function(options, complete) {
396
410
 
397
411
  jSuites.ajax.send = function(httpRequest) {
398
412
  if (httpRequest.data) {
399
- httpRequest.send(httpRequest.data.join('&'));
413
+ if (Array.isArray(httpRequest.data)) {
414
+ httpRequest.send(httpRequest.data.join('&'));
415
+ } else {
416
+ httpRequest.send(httpRequest.data);
417
+ }
400
418
  } else {
401
419
  httpRequest.send();
402
420
  }
@@ -2717,9 +2735,9 @@ jSuites.contextmenu = (function(el, options) {
2717
2735
  itemContainer.addEventListener("mousedown", function(e) {
2718
2736
  e.preventDefault();
2719
2737
  });
2720
- itemContainer.addEventListener("mouseup", function() {
2738
+ itemContainer.addEventListener("mouseup", function(e) {
2721
2739
  // Execute method
2722
- this.method(this);
2740
+ this.method(this, e);
2723
2741
  });
2724
2742
  }
2725
2743
  itemContainer.appendChild(itemText);
@@ -3037,9 +3055,9 @@ jSuites.dropdown = (function(el, options) {
3037
3055
  onfocus: null,
3038
3056
  onblur: null,
3039
3057
  oninsert: null,
3040
- onbeforeinsert: null,
3041
- sortResults: false,
3042
- autofocus: false,
3058
+ onbeforeinsert: null,
3059
+ sortResults: false,
3060
+ autofocus: false,
3043
3061
  }
3044
3062
 
3045
3063
  // Loop through our object
@@ -3352,7 +3370,7 @@ jSuites.dropdown = (function(el, options) {
3352
3370
  /**
3353
3371
  * Add a new item
3354
3372
  * @param {string} title - title of the new item
3355
- * @param {string} id - value/id of the new item
3373
+ * @param {string} id - value/id of the new item
3356
3374
  */
3357
3375
  obj.add = function(title, id) {
3358
3376
  if (! title) {
@@ -3389,8 +3407,8 @@ jSuites.dropdown = (function(el, options) {
3389
3407
  } else if (ret) {
3390
3408
  item = ret;
3391
3409
  }
3392
- }
3393
-
3410
+ }
3411
+
3394
3412
  // Add item to the main list
3395
3413
  obj.options.data.push(item);
3396
3414
 
@@ -3465,11 +3483,11 @@ jSuites.dropdown = (function(el, options) {
3465
3483
  item.element.setAttribute('data-disabled', true);
3466
3484
  }
3467
3485
 
3468
- // Tooltip
3469
- if (data.tooltip) {
3470
- item.element.setAttribute('title', data.tooltip);
3471
- }
3472
-
3486
+ // Tooltip
3487
+ if (data.tooltip) {
3488
+ item.element.setAttribute('title', data.tooltip);
3489
+ }
3490
+
3473
3491
  // Image
3474
3492
  if (data.image) {
3475
3493
  var image = document.createElement('img');
@@ -3489,7 +3507,7 @@ jSuites.dropdown = (function(el, options) {
3489
3507
  if (data.color) {
3490
3508
  icon.style.color = data.color;
3491
3509
  }
3492
- item.element.appendChild(icon);
3510
+ item.element.appendChild(icon);
3493
3511
  } else if (data.color) {
3494
3512
  var color = document.createElement('div');
3495
3513
  color.className = 'jdropdown-color';
@@ -4381,25 +4399,25 @@ jSuites.dropdown = (function(el, options) {
4381
4399
  jSuites.dropdown.keydown = function(e) {
4382
4400
  var dropdown = null;
4383
4401
  if (dropdown = jSuites.dropdown.current) {
4384
- if (e.which == 13 || e.which == 9) { // enter or tab
4385
- if (dropdown.header.value && dropdown.currentIndex == null && dropdown.options.newOptions) {
4386
- // if they typed something in, but it matched nothing, and newOptions are allowed, start that flow
4387
- dropdown.add();
4388
- } else {
4402
+ if (e.which == 13 || e.which == 9) { // enter or tab
4403
+ if (dropdown.header.value && dropdown.currentIndex == null && dropdown.options.newOptions) {
4404
+ // if they typed something in, but it matched nothing, and newOptions are allowed, start that flow
4405
+ dropdown.add();
4406
+ } else {
4389
4407
  // Quick Select/Filter
4390
4408
  if (dropdown.currentIndex == null && dropdown.options.autocomplete == true && dropdown.header.value != "") {
4391
4409
  dropdown.find(dropdown.header.value);
4392
4410
  }
4393
4411
  dropdown.selectIndex(dropdown.currentIndex);
4394
- }
4395
- } else if (e.which == 38) { // up arrow
4412
+ }
4413
+ } else if (e.which == 38) { // up arrow
4396
4414
  if (dropdown.currentIndex == null) {
4397
4415
  dropdown.first();
4398
4416
  } else if (dropdown.currentIndex > 0) {
4399
4417
  dropdown.prev();
4400
4418
  }
4401
4419
  e.preventDefault();
4402
- } else if (e.which == 40) { // down arrow
4420
+ } else if (e.which == 40) { // down arrow
4403
4421
  if (dropdown.currentIndex == null) {
4404
4422
  dropdown.first();
4405
4423
  } else if (dropdown.currentIndex + 1 < dropdown.items.length) {
@@ -6689,10 +6707,10 @@ jSuites.mask = (function() {
6689
6707
  } else {
6690
6708
  // Did not find any decimal last resort the default
6691
6709
  var e = new RegExp('#,##', 'ig');
6692
- if ((v && v.match(e)) || '1.1'.toLocaleString().substring(1,2) == '.') {
6693
- this.options.decimal = '.';
6694
- } else {
6710
+ if ((v && v.match(e)) || '1.1'.toLocaleString().substring(1,2) == ',') {
6695
6711
  this.options.decimal = ',';
6712
+ } else {
6713
+ this.options.decimal = '.';
6696
6714
  }
6697
6715
  }
6698
6716
  }
@@ -6745,10 +6763,7 @@ jSuites.mask = (function() {
6745
6763
  // Get decimal
6746
6764
  var d = getDecimal.call(this);
6747
6765
  // Convert value
6748
- var o = Object.create(this.options || {});
6749
- if (! o.minimumFractionDigits) {
6750
- o.minimumFractionDigits = 1;
6751
- }
6766
+ var o = this.options;
6752
6767
  // Parse value
6753
6768
  v = ParseValue.call(this, v);
6754
6769
  if (v == '') {
@@ -6765,10 +6780,13 @@ jSuites.mask = (function() {
6765
6780
  }
6766
6781
  var n = new Intl.NumberFormat(this.locale, o).format(t);
6767
6782
  n = n.split(d);
6768
- var s = n[1].replace(/[0-9]*/g, '');
6769
- if (s) {
6770
- n[2] = s;
6783
+ if (typeof(n[1]) !== 'undefined') {
6784
+ var s = n[1].replace(/[0-9]*/g, '');
6785
+ if (s) {
6786
+ n[2] = s;
6787
+ }
6771
6788
  }
6789
+
6772
6790
  if (v[1] !== undefined) {
6773
6791
  n[1] = d + v[1];
6774
6792
  } else {
@@ -7841,18 +7859,31 @@ jSuites.mask = (function() {
7841
7859
  d = d[0].length - 2;
7842
7860
  t = value.toFixed(d);
7843
7861
  } else {
7844
- t = (''+value);
7862
+ t = value.toFixed(0);
7845
7863
  }
7846
7864
  } else if (options.locale && fullMask) {
7865
+ // Append zeros
7847
7866
  var d = (''+value).split('.');
7848
- if (! d[1]) {
7849
- d[1] = '00';
7850
- } else {
7851
- if (d[1].length == 1) {
7852
- d[1] += '0';
7867
+ if (options.options) {
7868
+ if (typeof(d[1]) === 'undefined') {
7869
+ d[1] = '';
7853
7870
  }
7871
+ var len = d[1].length;
7872
+ if (options.options.minimumFractionDigits > len) {
7873
+ for (var i = 0; i < options.options.minimumFractionDigits - len; i++) {
7874
+ d[1] += '0';
7875
+ }
7876
+ }
7877
+ }
7878
+ if (! d[1].length) {
7879
+ t = d[0]
7880
+ } else {
7881
+ t = d.join('.');
7882
+ }
7883
+ var len = d[1].length;
7884
+ if (options.options && options.options.maximumFractionDigits < len) {
7885
+ t = parseFloat(t).toFixed(options.options.maximumFractionDigits);
7854
7886
  }
7855
- t = d.join('.');
7856
7887
  } else {
7857
7888
  t = toPlainString(value);
7858
7889
  }
@@ -8051,40 +8082,45 @@ jSuites.notification.isVisible = function() {
8051
8082
  }
8052
8083
 
8053
8084
  // More palettes https://coolors.co/ or https://gka.github.io/palettes/#/10|s|003790,005647,ffffe0|ffffe0,ff005e,93003a|1|1
8054
-
8055
- jSuites.palette = function(o) {
8056
- // Material
8057
- var palette = {};
8058
-
8059
- palette.material = [
8060
- [ "#ffebee", "#fce4ec", "#f3e5f5", "#e8eaf6", "#e3f2fd", "#e0f7fa", "#e0f2f1", "#e8f5e9", "#f1f8e9", "#f9fbe7", "#fffde7", "#fff8e1", "#fff3e0", "#fbe9e7", "#efebe9", "#fafafa", "#eceff1" ],
8061
- [ "#ffcdd2", "#f8bbd0", "#e1bee7", "#c5cae9", "#bbdefb", "#b2ebf2", "#b2dfdb", "#c8e6c9", "#dcedc8", "#f0f4c3", "#fff9c4", "#ffecb3", "#ffe0b2", "#ffccbc", "#d7ccc8", "#f5f5f5", "#cfd8dc" ],
8062
- [ "#ef9a9a", "#f48fb1", "#ce93d8", "#9fa8da", "#90caf9", "#80deea", "#80cbc4", "#a5d6a7", "#c5e1a5", "#e6ee9c", "#fff59d", "#ffe082", "#ffcc80", "#ffab91", "#bcaaa4", "#eeeeee", "#b0bec5" ],
8063
- [ "#e57373", "#f06292", "#ba68c8", "#7986cb", "#64b5f6", "#4dd0e1", "#4db6ac", "#81c784", "#aed581", "#dce775", "#fff176", "#ffd54f", "#ffb74d", "#ff8a65", "#a1887f", "#e0e0e0", "#90a4ae" ],
8064
- [ "#ef5350", "#ec407a", "#ab47bc", "#5c6bc0", "#42a5f5", "#26c6da", "#26a69a", "#66bb6a", "#9ccc65", "#d4e157", "#ffee58", "#ffca28", "#ffa726", "#ff7043", "#8d6e63", "#bdbdbd", "#78909c" ],
8065
- [ "#f44336", "#e91e63", "#9c27b0", "#3f51b5", "#2196f3", "#00bcd4", "#009688", "#4caf50", "#8bc34a", "#cddc39", "#ffeb3b", "#ffc107", "#ff9800", "#ff5722", "#795548", "#9e9e9e", "#607d8b" ],
8066
- [ "#e53935", "#d81b60", "#8e24aa", "#3949ab", "#1e88e5", "#00acc1", "#00897b", "#43a047", "#7cb342", "#c0ca33", "#fdd835", "#ffb300", "#fb8c00", "#f4511e", "#6d4c41", "#757575", "#546e7a" ],
8067
- [ "#d32f2f", "#c2185b", "#7b1fa2", "#303f9f", "#1976d2", "#0097a7", "#00796b", "#388e3c", "#689f38", "#afb42b", "#fbc02d", "#ffa000", "#f57c00", "#e64a19", "#5d4037", "#616161", "#455a64" ],
8068
- [ "#c62828", "#ad1457", "#6a1b9a", "#283593", "#1565c0", "#00838f", "#00695c", "#2e7d32", "#558b2f", "#9e9d24", "#f9a825", "#ff8f00", "#ef6c00", "#d84315", "#4e342e", "#424242", "#37474f" ],
8069
- [ "#b71c1c", "#880e4f", "#4a148c", "#1a237e", "#0d47a1", "#006064", "#004d40", "#1b5e20", "#33691e", "#827717", "#f57f17", "#ff6f00", "#e65100", "#bf360c", "#3e2723", "#212121", "#263238" ],
8070
- ];
8071
-
8072
- palette.fire = [
8073
- ["0b1a6d","840f38","b60718","de030b","ff0c0c","fd491c","fc7521","faa331","fbb535","ffc73a"],
8074
- ["071147","5f0b28","930513","be0309","ef0000","fa3403","fb670b","f9991b","faad1e","ffc123"],
8075
- ["03071e","370617","6a040f","9d0208","d00000","dc2f02","e85d04","f48c06","faa307","ffba08"],
8076
- ["020619","320615","61040d","8c0207","bc0000","c82a02","d05203","db7f06","e19405","efab00"],
8077
- ["020515","2d0513","58040c","7f0206","aa0000","b62602","b94903","c57205","ca8504","d89b00"],
8078
- ]
8079
-
8080
- palette.baby = [
8081
- ["eddcd2","fff1e6","fde2e4","fad2e1","c5dedd","dbe7e4","f0efeb","d6e2e9","bcd4e6","99c1de"],
8082
- ["e1c4b3","ffd5b5","fab6ba","f5a8c4","aacecd","bfd5cf","dbd9d0","baceda","9dc0db","7eb1d5"],
8083
- ["daa990","ffb787","f88e95","f282a9","8fc4c3","a3c8be","cec9b3","9dbcce","82acd2","649dcb"],
8084
- ["d69070","ff9c5e","f66770","f05f8f","74bbb9","87bfae","c5b993","83aac3","699bca","4d89c2"],
8085
- ["c97d5d","f58443","eb4d57","e54a7b","66a9a7","78ae9c","b5a67e","7599b1","5c88b7","4978aa"],
8086
- ]
8087
-
8085
+ jSuites.palette = function(o, v) {
8086
+ var palette = {
8087
+ material: [
8088
+ [ "#ffebee", "#fce4ec", "#f3e5f5", "#e8eaf6", "#e3f2fd", "#e0f7fa", "#e0f2f1", "#e8f5e9", "#f1f8e9", "#f9fbe7", "#fffde7", "#fff8e1", "#fff3e0", "#fbe9e7", "#efebe9", "#fafafa", "#eceff1" ],
8089
+ [ "#ffcdd2", "#f8bbd0", "#e1bee7", "#c5cae9", "#bbdefb", "#b2ebf2", "#b2dfdb", "#c8e6c9", "#dcedc8", "#f0f4c3", "#fff9c4", "#ffecb3", "#ffe0b2", "#ffccbc", "#d7ccc8", "#f5f5f5", "#cfd8dc" ],
8090
+ [ "#ef9a9a", "#f48fb1", "#ce93d8", "#9fa8da", "#90caf9", "#80deea", "#80cbc4", "#a5d6a7", "#c5e1a5", "#e6ee9c", "#fff59d", "#ffe082", "#ffcc80", "#ffab91", "#bcaaa4", "#eeeeee", "#b0bec5" ],
8091
+ [ "#e57373", "#f06292", "#ba68c8", "#7986cb", "#64b5f6", "#4dd0e1", "#4db6ac", "#81c784", "#aed581", "#dce775", "#fff176", "#ffd54f", "#ffb74d", "#ff8a65", "#a1887f", "#e0e0e0", "#90a4ae" ],
8092
+ [ "#ef5350", "#ec407a", "#ab47bc", "#5c6bc0", "#42a5f5", "#26c6da", "#26a69a", "#66bb6a", "#9ccc65", "#d4e157", "#ffee58", "#ffca28", "#ffa726", "#ff7043", "#8d6e63", "#bdbdbd", "#78909c" ],
8093
+ [ "#f44336", "#e91e63", "#9c27b0", "#3f51b5", "#2196f3", "#00bcd4", "#009688", "#4caf50", "#8bc34a", "#cddc39", "#ffeb3b", "#ffc107", "#ff9800", "#ff5722", "#795548", "#9e9e9e", "#607d8b" ],
8094
+ [ "#e53935", "#d81b60", "#8e24aa", "#3949ab", "#1e88e5", "#00acc1", "#00897b", "#43a047", "#7cb342", "#c0ca33", "#fdd835", "#ffb300", "#fb8c00", "#f4511e", "#6d4c41", "#757575", "#546e7a" ],
8095
+ [ "#d32f2f", "#c2185b", "#7b1fa2", "#303f9f", "#1976d2", "#0097a7", "#00796b", "#388e3c", "#689f38", "#afb42b", "#fbc02d", "#ffa000", "#f57c00", "#e64a19", "#5d4037", "#616161", "#455a64" ],
8096
+ [ "#c62828", "#ad1457", "#6a1b9a", "#283593", "#1565c0", "#00838f", "#00695c", "#2e7d32", "#558b2f", "#9e9d24", "#f9a825", "#ff8f00", "#ef6c00", "#d84315", "#4e342e", "#424242", "#37474f" ],
8097
+ [ "#b71c1c", "#880e4f", "#4a148c", "#1a237e", "#0d47a1", "#006064", "#004d40", "#1b5e20", "#33691e", "#827717", "#f57f17", "#ff6f00", "#e65100", "#bf360c", "#3e2723", "#212121", "#263238" ],
8098
+ ],
8099
+ fire: [
8100
+ ["0b1a6d","840f38","b60718","de030b","ff0c0c","fd491c","fc7521","faa331","fbb535","ffc73a"],
8101
+ ["071147","5f0b28","930513","be0309","ef0000","fa3403","fb670b","f9991b","faad1e","ffc123"],
8102
+ ["03071e","370617","6a040f","9d0208","d00000","dc2f02","e85d04","f48c06","faa307","ffba08"],
8103
+ ["020619","320615","61040d","8c0207","bc0000","c82a02","d05203","db7f06","e19405","efab00"],
8104
+ ["020515","2d0513","58040c","7f0206","aa0000","b62602","b94903","c57205","ca8504","d89b00"],
8105
+ ],
8106
+ baby: [
8107
+ ["eddcd2","fff1e6","fde2e4","fad2e1","c5dedd","dbe7e4","f0efeb","d6e2e9","bcd4e6","99c1de"],
8108
+ ["e1c4b3","ffd5b5","fab6ba","f5a8c4","aacecd","bfd5cf","dbd9d0","baceda","9dc0db","7eb1d5"],
8109
+ ["daa990","ffb787","f88e95","f282a9","8fc4c3","a3c8be","cec9b3","9dbcce","82acd2","649dcb"],
8110
+ ["d69070","ff9c5e","f66770","f05f8f","74bbb9","87bfae","c5b993","83aac3","699bca","4d89c2"],
8111
+ ["c97d5d","f58443","eb4d57","e54a7b","66a9a7","78ae9c","b5a67e","7599b1","5c88b7","4978aa"],
8112
+ ],
8113
+ chart: [
8114
+ ['#C1D37F','#4C5454','#FFD275','#66586F','#D05D5B','#C96480','#95BF8F','#6EA240','#0F0F0E','#EB8258','#95A3B3','#995D81'],
8115
+ ],
8116
+ }
8117
+
8118
+ // Is defined, set new palette value
8119
+ if (typeof(v) !== 'undefined') {
8120
+ palette[o] = v;
8121
+ }
8122
+
8123
+ // Otherwise get palette value
8088
8124
  if (palette[o]) {
8089
8125
  return palette[o];
8090
8126
  } else {
@@ -8092,6 +8128,7 @@ jSuites.palette = function(o) {
8092
8128
  }
8093
8129
  }
8094
8130
 
8131
+
8095
8132
  jSuites.picker = (function(el, options) {
8096
8133
  // Already created, update options
8097
8134
  if (el.picker) {
package/dist/jsuites.css CHANGED
@@ -108,6 +108,28 @@ div[data-before]:before {
108
108
  position: relative;
109
109
  }
110
110
 
111
+ .jphoto {
112
+ position: relative;
113
+ border: 1px dotted #eee;
114
+ cursor: pointer;
115
+ box-sizing: border-box;
116
+ width: 100%;
117
+ max-height: 100%;
118
+ min-height: 180px;
119
+ display: flex;
120
+ align-items: center;
121
+ justify-content: center;
122
+ }
123
+
124
+ .jphoto:empty:before {
125
+ content: "\e2c3";
126
+ font-family: "Material Icons";
127
+ font-size: 90px;
128
+ color: #eee;
129
+ width: 100%;
130
+ height: 100%;
131
+ }
132
+
111
133
  .jremove {
112
134
  opacity: 0.2;
113
135
  filter: alpha(opacity=20);
@@ -791,6 +813,7 @@ div[data-before]:before {
791
813
  cursor: default;
792
814
  font-size: 11px;
793
815
  font-family:sans-serif;
816
+ text-align: left;
794
817
  }
795
818
 
796
819
  .jcontextmenu > div::before {
@@ -1925,6 +1948,8 @@ div[data-before]:before {
1925
1948
 
1926
1949
  .jpicker-focus > .jpicker-content {
1927
1950
  display: block;
1951
+ overflow-y: auto;
1952
+ min-width: 100%;
1928
1953
  }
1929
1954
 
1930
1955
  .jpicker-content > div:hover {
@@ -1946,6 +1971,7 @@ div[data-before]:before {
1946
1971
  }
1947
1972
 
1948
1973
 
1974
+
1949
1975
  .jprogressbar
1950
1976
  {
1951
1977
  cursor:pointer;