@finqu/cool 1.2.5 → 1.2.7
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/dist/css/cool-grid.css +2 -2
- package/dist/css/cool-grid.css.map +1 -1
- package/dist/css/cool-grid.min.css +1 -1
- package/dist/css/cool-grid.min.css.map +1 -1
- package/dist/css/cool-reboot.css +2 -2
- package/dist/css/cool-reboot.css.map +1 -1
- package/dist/css/cool-reboot.min.css +1 -1
- package/dist/css/cool-reboot.min.css.map +1 -1
- package/dist/css/cool.css +3 -2
- package/dist/css/cool.css.map +3 -3
- package/dist/css/cool.min.css +2 -2
- package/dist/css/cool.min.css.map +1 -1
- package/dist/js/cool.bundle.js +83 -23
- package/dist/js/cool.bundle.js.map +1 -1
- package/dist/js/cool.bundle.min.js +2 -2
- package/dist/js/cool.bundle.min.js.map +1 -1
- package/dist/js/cool.esm.js +83 -23
- package/dist/js/cool.esm.js.map +1 -1
- package/dist/js/cool.esm.min.js +2 -2
- package/dist/js/cool.esm.min.js.map +1 -1
- package/dist/js/cool.js +83 -23
- package/dist/js/cool.js.map +1 -1
- package/dist/js/cool.min.js +2 -2
- package/dist/js/cool.min.js.map +1 -1
- package/html/index.html +86 -0
- package/js/dist/collapse.js +2 -2
- package/js/dist/common.js +2 -2
- package/js/dist/dropdown.js +792 -691
- package/js/dist/dropdown.js.map +1 -1
- package/js/dist/popover.js +1840 -1727
- package/js/dist/popover.js.map +1 -1
- package/js/dist/sectiontabs.js +2 -2
- package/js/dist/select.js +4456 -3710
- package/js/dist/select.js.map +1 -1
- package/js/dist/tooltip.js +2 -2
- package/js/src/dropdown.js +10 -3
- package/js/src/popover.js +6 -0
- package/js/src/select.js +72 -20
- package/package.json +1 -1
- package/scss/LISENCE +1 -1
- package/scss/_frame.scss +1 -0
- package/scss/cool-grid.scss +2 -2
- package/scss/cool-reboot.scss +2 -2
- package/scss/cool.scss +2 -2
package/dist/js/cool.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Cool UI v1.2.
|
|
3
|
-
* Copyright 2011-
|
|
2
|
+
* Cool UI v1.2.6 (https://finqu.fi)
|
|
3
|
+
* Copyright 2011-2020 Finqu Oy
|
|
4
4
|
* Licensed under the ISC license - (http://opensource.org/licenses/ISC)
|
|
5
5
|
*/
|
|
6
6
|
(function (global, factory) {
|
|
@@ -1675,6 +1675,7 @@
|
|
|
1675
1675
|
_proto.buildCache = function buildCache() {
|
|
1676
1676
|
this.$el = $(this.el);
|
|
1677
1677
|
this.$container = this.$el.data('container') ? $(this.$el.data('container')) : $(this.opts.container);
|
|
1678
|
+
this.containerAutoDetect = this.$el.data('containerAutoDetect') ? this.$el.data('containerAutoDetect') : this.opts.containerAutoDetect;
|
|
1678
1679
|
this.id = 'popover-' + this.generateUUID();
|
|
1679
1680
|
this.animation = this.$el.data('animation') ? this.$el.data('animation') : this.opts.animation;
|
|
1680
1681
|
this.animationIn = this.$el.data('animationIn') ? this.$el.data('animationIn') : this.opts.animationIn;
|
|
@@ -1685,6 +1686,10 @@
|
|
|
1685
1686
|
this.placementChanged = false;
|
|
1686
1687
|
this.title = this.$el.data('title') ? this.$el.data('title') : this.opts.title;
|
|
1687
1688
|
this.content = this.$el.data('content') ? this.$el.data('content') : this.opts.content;
|
|
1689
|
+
|
|
1690
|
+
if (this.containerAutoDetect) {
|
|
1691
|
+
this.$container = this.$el.offsetParent();
|
|
1692
|
+
}
|
|
1688
1693
|
} // Bind events that trigger methods
|
|
1689
1694
|
;
|
|
1690
1695
|
|
|
@@ -2109,6 +2114,7 @@
|
|
|
2109
2114
|
|
|
2110
2115
|
$.fn[NAME].defaults = {
|
|
2111
2116
|
container: '.content-inner',
|
|
2117
|
+
containerAutoDetect: false,
|
|
2112
2118
|
trigger: 'focus',
|
|
2113
2119
|
placement: 'bottom',
|
|
2114
2120
|
animation: true,
|
|
@@ -2247,6 +2253,7 @@
|
|
|
2247
2253
|
_this3.allowNoneOnRadioSelect = _this3.$el.data('allowNoneOnRadioSelect') ? _this3.$el.data('allowNoneOnRadioSelect') : _this3.opts.allowNoneOnRadioSelect;
|
|
2248
2254
|
_this3.showValidStateIcon = _this3.$el.data('showValidStateIcon') ? _this3.$el.data('showValidStateIcon') : _this3.opts.showValidStateIcon;
|
|
2249
2255
|
_this3.itemsToExclude = _this3.$el.data('itemsToExclude') ? _this3.$el.data('itemsToExclude').replace(/\s/g, '').split(',') : _this3.opts.itemsToExclude;
|
|
2256
|
+
_this3.primaryKeyword = _this3.$el.data('primaryKeyword') ? _this3.$el.data('primaryKeyword') : _this3.opts.primaryKeyword;
|
|
2250
2257
|
_this3.preventClose = false;
|
|
2251
2258
|
|
|
2252
2259
|
if (_this3.itemsToExclude.length > 0) {
|
|
@@ -2261,13 +2268,13 @@
|
|
|
2261
2268
|
_this3.data = _this3.$el.data('setData');
|
|
2262
2269
|
}
|
|
2263
2270
|
|
|
2264
|
-
if (
|
|
2271
|
+
if (_this3.data[_this3.name] !== 'undefined' && _this3.data[_this3.name].length > 0 && self.itemsToExclude) {
|
|
2265
2272
|
_this3.data[_this3.name] = _this3.data[_this3.name].filter(function (item) {
|
|
2266
2273
|
return self.itemsToExclude.indexOf(parseInt(item.id, 10)) === -1;
|
|
2267
2274
|
});
|
|
2268
2275
|
}
|
|
2269
2276
|
|
|
2270
|
-
if (
|
|
2277
|
+
if (_this3.items !== 'undefined' && _this3.items.lengths > 0 && self.itemsToExclude) {
|
|
2271
2278
|
_this3.items = _this3.items.filter(function (item) {
|
|
2272
2279
|
return self.itemsToExclude.indexOf(parseInt(item.id, 10)) === -1;
|
|
2273
2280
|
});
|
|
@@ -2290,10 +2297,12 @@
|
|
|
2290
2297
|
if (!_this3.$select.length) {
|
|
2291
2298
|
var items = _this3._renderItemList(_this3.items);
|
|
2292
2299
|
|
|
2293
|
-
_this3.$select = $("\n <div class=\"select-content\">\n\n " + _this3._renderSearch() + "\n\n <div class=\"select-scrollable-content\"
|
|
2300
|
+
_this3.$select = $("\n <div class=\"select-content\">\n\n " + _this3._renderSearch() + "\n\n <div class=\"select-scrollable-content\"></div>\n\n " + _this3._renderFooter() + "\n\n </div>\n ");
|
|
2294
2301
|
|
|
2295
2302
|
_this3.$el.append(_this3.$select);
|
|
2296
2303
|
|
|
2304
|
+
_this3.$select.find('.select-scrollable-content').append(items);
|
|
2305
|
+
|
|
2297
2306
|
secondaryResolve();
|
|
2298
2307
|
} else {
|
|
2299
2308
|
secondaryResolve();
|
|
@@ -2603,14 +2612,30 @@
|
|
|
2603
2612
|
url: searchUrl
|
|
2604
2613
|
}).done(function (data) {
|
|
2605
2614
|
var items = data.map(function (item) {
|
|
2606
|
-
item.id = item.
|
|
2615
|
+
item.id = item[self.primaryKeyword].toString();
|
|
2607
2616
|
return item;
|
|
2608
2617
|
});
|
|
2618
|
+
var itemIds = items.map(function (item) {
|
|
2619
|
+
return parseInt(item.id, 10);
|
|
2620
|
+
}); // Remove value from data if it doesn't exist anymore
|
|
2621
|
+
|
|
2622
|
+
self.data[self.name] = self.data[self.name].filter(function (value) {
|
|
2623
|
+
return itemIds.indexOf(parseInt(value, 10)) > -1;
|
|
2624
|
+
});
|
|
2625
|
+
|
|
2626
|
+
if (self.data[self.name].length == 0) {
|
|
2627
|
+
self.$selectIconContainer.html(self.selectIconDefault);
|
|
2628
|
+
}
|
|
2629
|
+
|
|
2609
2630
|
items = items.filter(function (item) {
|
|
2610
2631
|
return self.data[self.name].indexOf(item.id) > -1 && self.itemsToExclude.indexOf(parseInt(item.id, 10)) === -1 && parseInt(item.id, 10) > 0;
|
|
2611
2632
|
});
|
|
2612
|
-
|
|
2633
|
+
|
|
2634
|
+
var result = self._renderItemList(items);
|
|
2635
|
+
|
|
2613
2636
|
$.when(self.$scrollableContent.append(result)).then(function () {
|
|
2637
|
+
var $inputs = self.$scrollableContent.find(':input');
|
|
2638
|
+
|
|
2614
2639
|
if (self.$scrollableContent[0].offsetHeight < self.$scrollableContent[0].scrollHeight) {
|
|
2615
2640
|
self.scroll.update();
|
|
2616
2641
|
self.scroll.settings.suppressScrollY = false;
|
|
@@ -2621,22 +2646,22 @@
|
|
|
2621
2646
|
self.$scrollableContent.removeClass('ps-show-rail-y');
|
|
2622
2647
|
}
|
|
2623
2648
|
|
|
2624
|
-
if (self.$
|
|
2649
|
+
if (self.$scrollableContent.find(':input[type="checkbox"]').length) {
|
|
2625
2650
|
self.type = 'checkbox';
|
|
2626
|
-
} else if (self.$
|
|
2651
|
+
} else if (self.$scrollableContent.find(':input[type="radio"]').length) {
|
|
2627
2652
|
self.type = 'radio';
|
|
2628
2653
|
}
|
|
2629
2654
|
|
|
2630
2655
|
if (self.type == 'checkbox') {
|
|
2631
2656
|
self.data[self.name].forEach(function (value) {
|
|
2632
|
-
var $input =
|
|
2657
|
+
var $input = $inputs.filter(function () {
|
|
2633
2658
|
return this.value == value;
|
|
2634
2659
|
});
|
|
2635
2660
|
$input.prop('checked', true);
|
|
2636
2661
|
self.onSelect($input[0]);
|
|
2637
2662
|
});
|
|
2638
2663
|
} else if (self.type == 'radio') {
|
|
2639
|
-
var $input =
|
|
2664
|
+
var $input = $inputs.filter(function () {
|
|
2640
2665
|
return this.value == self.data[self.name];
|
|
2641
2666
|
});
|
|
2642
2667
|
$input.prop('checked', true);
|
|
@@ -2651,22 +2676,35 @@
|
|
|
2651
2676
|
});
|
|
2652
2677
|
});
|
|
2653
2678
|
} else {
|
|
2654
|
-
if
|
|
2679
|
+
// Remove value from data if it doesn't exist anymore
|
|
2680
|
+
var $inputs = this.$scrollableContent.find(':input');
|
|
2681
|
+
var inputValues = $inputs.length > 0 ? $inputs.map(function () {
|
|
2682
|
+
return parseInt(this.value, 10);
|
|
2683
|
+
}).get() : [];
|
|
2684
|
+
this.data[this.name] = this.data[this.name].filter(function (value) {
|
|
2685
|
+
return inputValues.indexOf(parseInt(value, 10)) > -1;
|
|
2686
|
+
});
|
|
2687
|
+
|
|
2688
|
+
if (this.data[this.name].length == 0) {
|
|
2689
|
+
this.$selectIconContainer.html(this.selectIconDefault);
|
|
2690
|
+
}
|
|
2691
|
+
|
|
2692
|
+
if (this.$scrollableContent.find(':input[type="checkbox"]').length) {
|
|
2655
2693
|
this.type = 'checkbox';
|
|
2656
|
-
} else if (this.$
|
|
2694
|
+
} else if (this.$scrollableContent.find(':input[type="radio"]').length) {
|
|
2657
2695
|
this.type = 'radio';
|
|
2658
2696
|
}
|
|
2659
2697
|
|
|
2660
2698
|
if (this.type == 'checkbox') {
|
|
2661
2699
|
this.data[this.name].forEach(function (value) {
|
|
2662
|
-
var $input =
|
|
2700
|
+
var $input = $inputs.filter(function () {
|
|
2663
2701
|
return this.value == value;
|
|
2664
2702
|
});
|
|
2665
2703
|
$input.prop('checked', true);
|
|
2666
2704
|
self.onSelect($input[0]);
|
|
2667
2705
|
});
|
|
2668
2706
|
} else if (this.type == 'radio') {
|
|
2669
|
-
var $input =
|
|
2707
|
+
var $input = $inputs.filter(function () {
|
|
2670
2708
|
return this.value == self.data[self.name];
|
|
2671
2709
|
});
|
|
2672
2710
|
$input.prop('checked', true);
|
|
@@ -2694,13 +2732,15 @@
|
|
|
2694
2732
|
url: this.searchApi + this.searchString
|
|
2695
2733
|
}).done(function (data) {
|
|
2696
2734
|
var items = data.map(function (item) {
|
|
2697
|
-
item.id = item.
|
|
2735
|
+
item.id = item[self.primaryKeyword].toString();
|
|
2698
2736
|
return item;
|
|
2699
2737
|
});
|
|
2700
2738
|
items = items.filter(function (item) {
|
|
2701
2739
|
return self.data[self.name].indexOf(item.id) === -1 && self.itemsToExclude.indexOf(parseInt(item.id, 10)) === -1 && parseInt(item.id, 10) > 0;
|
|
2702
2740
|
});
|
|
2703
|
-
|
|
2741
|
+
|
|
2742
|
+
var result = self._renderItemList(items);
|
|
2743
|
+
|
|
2704
2744
|
$.when(self.$scrollableContent.append(result)).then(function () {
|
|
2705
2745
|
var faNameSpace = self.opts.faPro ? 'fal' : 'fas';
|
|
2706
2746
|
self.$searchIconContainer.html("<i class=\"" + faNameSpace + " fa-times icon\"></i>");
|
|
@@ -2822,10 +2862,22 @@
|
|
|
2822
2862
|
;
|
|
2823
2863
|
|
|
2824
2864
|
_proto.onSelect = function onSelect(el) {
|
|
2865
|
+
var self = this;
|
|
2825
2866
|
var onSelect = this.opts.onSelect;
|
|
2867
|
+
var data = $(el).parents('.select-item').data();
|
|
2868
|
+
|
|
2869
|
+
if (this.searchApi.length && !$.isEmptyObject(data)) {
|
|
2870
|
+
if ($(el).length && el.checked) {
|
|
2871
|
+
this.items.push(data);
|
|
2872
|
+
} else {
|
|
2873
|
+
this.items = $.grep(this.items, function (item) {
|
|
2874
|
+
return item[self.primaryKeyword] != data.id;
|
|
2875
|
+
});
|
|
2876
|
+
}
|
|
2877
|
+
}
|
|
2826
2878
|
|
|
2827
2879
|
if (typeof onSelect === 'function') {
|
|
2828
|
-
onSelect.call(el);
|
|
2880
|
+
onSelect.call(el, data, this);
|
|
2829
2881
|
}
|
|
2830
2882
|
} // Add more items after plugin is already initialized
|
|
2831
2883
|
;
|
|
@@ -3012,7 +3064,7 @@
|
|
|
3012
3064
|
};
|
|
3013
3065
|
|
|
3014
3066
|
_proto._renderItemList = function _renderItemList(items) {
|
|
3015
|
-
var result =
|
|
3067
|
+
var result = [];
|
|
3016
3068
|
|
|
3017
3069
|
for (var i = 0; i < items.length; ++i) {
|
|
3018
3070
|
var item = items[i];
|
|
@@ -3030,7 +3082,7 @@
|
|
|
3030
3082
|
}
|
|
3031
3083
|
}
|
|
3032
3084
|
|
|
3033
|
-
result
|
|
3085
|
+
result.push($("\n\n <div class=\"select-item\">\n\n <div class=\"select-item-" + this.type + "\">\n\n <div class=\"styled-" + this.type + "\">\n\n <input type=\"" + this.type + "\" id=\"select-" + this.name + "-" + items[i].id + "\" value=\"" + items[i].id + "\" tabindex=\"-1\">\n\n <label for=\"select-" + this.name + "-" + items[i].id + "\">\n\n <span class=\"radio-inner\">\n <svg viewBox=\"0 0 18 18\">\n <polyline points=\"1.5 6 4.5 9 10.5 1\"></polyline>\n </svg>\n </span>\n\n <span class=\"" + this.type + "-label\"" + (typeof this.labelTemplate !== 'function' ? ' data-label' : '') + ">\n " + label + "\n </span>\n\n </label>\n\n </div>\n\n </div>\n\n </div>\n\n ").data(item));
|
|
3034
3086
|
}
|
|
3035
3087
|
|
|
3036
3088
|
return result;
|
|
@@ -3119,7 +3171,8 @@
|
|
|
3119
3171
|
allowNoneOnRadioSelect: true,
|
|
3120
3172
|
preventUncheck: false,
|
|
3121
3173
|
showValidStateIcon: true,
|
|
3122
|
-
itemsToExclude: []
|
|
3174
|
+
itemsToExclude: [],
|
|
3175
|
+
primaryKeyword: 'id'
|
|
3123
3176
|
};
|
|
3124
3177
|
}
|
|
3125
3178
|
|
|
@@ -3404,13 +3457,20 @@
|
|
|
3404
3457
|
// and let's assume that this containing parent fits and is inside
|
|
3405
3458
|
// viewport
|
|
3406
3459
|
var $containingParent = this.$container.parent();
|
|
3460
|
+
var index = 0;
|
|
3407
3461
|
|
|
3408
|
-
while ($containingParent.css('overflow-x') !== 'hidden' && $containingParent.css('overflow') !== 'hidden' && ($containingParent.prop('tagName') || '').toLowerCase() !== 'body') {
|
|
3462
|
+
while ($containingParent.css('overflow-x') !== 'hidden' && $containingParent.css('overflow') !== 'hidden' && ($containingParent.prop('tagName') || '').toLowerCase() !== 'body' && index < 100) {
|
|
3409
3463
|
$containingParent = $containingParent.parent();
|
|
3410
3464
|
|
|
3411
|
-
if (!$containingParent) {
|
|
3465
|
+
if (!$containingParent.get(0)) {
|
|
3412
3466
|
return;
|
|
3413
3467
|
}
|
|
3468
|
+
|
|
3469
|
+
++index;
|
|
3470
|
+
}
|
|
3471
|
+
|
|
3472
|
+
if (!$containingParent.get(0)) {
|
|
3473
|
+
return;
|
|
3414
3474
|
}
|
|
3415
3475
|
|
|
3416
3476
|
var containingBoundingRect = $containingParent.get(0).getBoundingClientRect();
|