fomantic-ui 2.10.0-beta.0 → 2.10.0-beta.10
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/.all-contributorsrc +9 -0
- package/.eslintrc.js +0 -10
- package/.github/workflows/ci.yml +3 -3
- package/CONTRIBUTING.md +4 -1
- package/CONTRIBUTORS.md +1 -0
- package/FAQ.md +7 -2
- package/README.md +5 -9
- package/ROADMAP.md +4 -4
- package/SECURITY.md +8 -7
- package/changelog-setup.js +64 -70
- package/dist/components/accordion.css +1 -1
- package/dist/components/accordion.js +103 -142
- package/dist/components/accordion.min.css +1 -1
- package/dist/components/accordion.min.js +2 -2
- package/dist/components/ad.css +1 -1
- package/dist/components/ad.min.css +1 -1
- package/dist/components/api.js +157 -210
- package/dist/components/api.min.js +2 -2
- package/dist/components/breadcrumb.css +1 -1
- package/dist/components/breadcrumb.min.css +1 -1
- package/dist/components/button.css +1 -2
- package/dist/components/button.min.css +2 -2
- package/dist/components/calendar.css +1 -2
- package/dist/components/calendar.js +314 -352
- package/dist/components/calendar.min.css +2 -2
- package/dist/components/calendar.min.js +2 -2
- package/dist/components/card.css +1 -1
- package/dist/components/card.min.css +1 -1
- package/dist/components/checkbox.css +1 -2
- package/dist/components/checkbox.js +85 -135
- package/dist/components/checkbox.min.css +2 -2
- package/dist/components/checkbox.min.js +2 -2
- package/dist/components/comment.css +1 -1
- package/dist/components/comment.min.css +1 -1
- package/dist/components/container.css +2 -4
- package/dist/components/container.min.css +2 -2
- package/dist/components/dimmer.css +1 -11
- package/dist/components/dimmer.js +61 -94
- package/dist/components/dimmer.min.css +2 -2
- package/dist/components/dimmer.min.js +2 -2
- package/dist/components/divider.css +1 -2
- package/dist/components/divider.min.css +2 -2
- package/dist/components/dropdown.css +30 -51
- package/dist/components/dropdown.js +736 -1055
- package/dist/components/dropdown.min.css +2 -2
- package/dist/components/dropdown.min.js +2 -2
- package/dist/components/embed.css +1 -1
- package/dist/components/embed.js +85 -114
- package/dist/components/embed.min.css +1 -1
- package/dist/components/embed.min.js +2 -2
- package/dist/components/emoji.css +3809 -7617
- package/dist/components/emoji.min.css +2 -2
- package/dist/components/feed.css +1 -1
- package/dist/components/feed.min.css +1 -1
- package/dist/components/flag.css +1 -1
- package/dist/components/flag.min.css +1 -1
- package/dist/components/flyout.css +2 -3
- package/dist/components/flyout.js +226 -355
- package/dist/components/flyout.min.css +2 -2
- package/dist/components/flyout.min.js +2 -2
- package/dist/components/form.css +5 -95
- package/dist/components/form.js +335 -444
- package/dist/components/form.min.css +2 -2
- package/dist/components/form.min.js +2 -2
- package/dist/components/grid.css +2 -58
- package/dist/components/grid.min.css +2 -2
- package/dist/components/header.css +1 -1
- package/dist/components/header.min.css +1 -1
- package/dist/components/icon.css +4 -4
- package/dist/components/icon.min.css +2 -2
- package/dist/components/image.css +1 -1
- package/dist/components/image.min.css +1 -1
- package/dist/components/input.css +1 -536
- package/dist/components/input.min.css +2 -2
- package/dist/components/item.css +1 -1
- package/dist/components/item.min.css +1 -1
- package/dist/components/label.css +1 -1
- package/dist/components/label.min.css +1 -1
- package/dist/components/list.css +1 -3
- package/dist/components/list.min.css +2 -2
- package/dist/components/loader.css +1 -1
- package/dist/components/loader.min.css +1 -1
- package/dist/components/menu.css +1 -9
- package/dist/components/menu.min.css +2 -2
- package/dist/components/message.css +1 -1
- package/dist/components/message.min.css +1 -1
- package/dist/components/modal.css +5 -9
- package/dist/components/modal.js +261 -384
- package/dist/components/modal.min.css +2 -2
- package/dist/components/modal.min.js +2 -2
- package/dist/components/nag.css +1 -1
- package/dist/components/nag.js +68 -98
- package/dist/components/nag.min.css +1 -1
- package/dist/components/nag.min.js +2 -2
- package/dist/components/placeholder.css +1 -1
- package/dist/components/placeholder.min.css +1 -1
- package/dist/components/popup.css +1 -2
- package/dist/components/popup.js +198 -271
- package/dist/components/popup.min.css +2 -2
- package/dist/components/popup.min.js +2 -2
- package/dist/components/progress.css +1 -1
- package/dist/components/progress.js +109 -144
- package/dist/components/progress.min.css +1 -1
- package/dist/components/progress.min.js +2 -2
- package/dist/components/rail.css +1 -1
- package/dist/components/rail.min.css +1 -1
- package/dist/components/rating.css +1 -1
- package/dist/components/rating.js +91 -123
- package/dist/components/rating.min.css +1 -1
- package/dist/components/rating.min.js +2 -2
- package/dist/components/reset.css +1 -1
- package/dist/components/reset.min.css +1 -1
- package/dist/components/reveal.css +1 -1
- package/dist/components/reveal.min.css +1 -1
- package/dist/components/search.css +2 -9
- package/dist/components/search.js +277 -379
- package/dist/components/search.min.css +2 -2
- package/dist/components/search.min.js +2 -2
- package/dist/components/segment.css +2 -7
- package/dist/components/segment.min.css +2 -2
- package/dist/components/shape.css +1 -2
- package/dist/components/shape.js +158 -224
- package/dist/components/shape.min.css +2 -2
- package/dist/components/shape.min.js +2 -2
- package/dist/components/sidebar.css +2 -3
- package/dist/components/sidebar.js +124 -206
- package/dist/components/sidebar.min.css +2 -2
- package/dist/components/sidebar.min.js +2 -2
- package/dist/components/site.css +9 -25
- package/dist/components/site.js +38 -57
- package/dist/components/site.min.css +2 -2
- package/dist/components/site.min.js +2 -2
- package/dist/components/slider.css +1 -1
- package/dist/components/slider.js +246 -329
- package/dist/components/slider.min.css +1 -1
- package/dist/components/slider.min.js +2 -2
- package/dist/components/state.js +70 -100
- package/dist/components/state.min.js +2 -2
- package/dist/components/statistic.css +1 -1
- package/dist/components/statistic.min.css +1 -1
- package/dist/components/step.css +1 -1
- package/dist/components/step.min.css +1 -1
- package/dist/components/sticky.css +1 -1
- package/dist/components/sticky.js +135 -180
- package/dist/components/sticky.min.css +1 -1
- package/dist/components/sticky.min.js +2 -2
- package/dist/components/tab.css +1 -1
- package/dist/components/tab.js +176 -244
- package/dist/components/tab.min.css +1 -1
- package/dist/components/tab.min.js +2 -2
- package/dist/components/table.css +3 -37
- package/dist/components/table.min.css +2 -2
- package/dist/components/text.css +1 -1
- package/dist/components/text.min.css +1 -1
- package/dist/components/toast.css +1 -3
- package/dist/components/toast.js +109 -147
- package/dist/components/toast.min.css +1 -1
- package/dist/components/toast.min.js +2 -2
- package/dist/components/transition.css +1 -1
- package/dist/components/transition.js +91 -146
- package/dist/components/transition.min.css +1 -1
- package/dist/components/transition.min.js +2 -2
- package/dist/components/visibility.js +146 -224
- package/dist/components/visibility.min.js +2 -2
- package/dist/semantic.css +3906 -8720
- package/dist/semantic.js +4397 -6155
- package/dist/semantic.min.css +2 -2
- package/dist/semantic.min.js +2 -2
- package/examples/assets/show-examples.js +2 -4
- package/gulpfile.js +5 -7
- package/package.json +20 -16
- package/scripts/nightly-version.js +7 -10
- package/src/README.md +3 -3
- package/src/definitions/behaviors/api.js +156 -209
- package/src/definitions/behaviors/form.js +334 -443
- package/src/definitions/behaviors/state.js +69 -99
- package/src/definitions/behaviors/visibility.js +145 -223
- package/src/definitions/collections/form.less +1 -13
- package/src/definitions/collections/grid.less +1 -61
- package/src/definitions/collections/menu.less +0 -11
- package/src/definitions/collections/table.less +1 -35
- package/src/definitions/elements/input.less +1 -61
- package/src/definitions/elements/segment.less +0 -6
- package/src/definitions/globals/site.js +37 -56
- package/src/definitions/globals/site.less +2 -18
- package/src/definitions/modules/accordion.js +102 -141
- package/src/definitions/modules/calendar.js +313 -351
- package/src/definitions/modules/checkbox.js +84 -134
- package/src/definitions/modules/dimmer.js +60 -93
- package/src/definitions/modules/dimmer.less +0 -9
- package/src/definitions/modules/dropdown.js +735 -1054
- package/src/definitions/modules/dropdown.less +31 -47
- package/src/definitions/modules/embed.js +84 -113
- package/src/definitions/modules/flyout.js +225 -354
- package/src/definitions/modules/modal.js +260 -383
- package/src/definitions/modules/modal.less +1 -1
- package/src/definitions/modules/nag.js +67 -97
- package/src/definitions/modules/popup.js +197 -270
- package/src/definitions/modules/progress.js +108 -143
- package/src/definitions/modules/rating.js +90 -122
- package/src/definitions/modules/search.js +276 -378
- package/src/definitions/modules/search.less +0 -3
- package/src/definitions/modules/shape.js +157 -223
- package/src/definitions/modules/sidebar.js +123 -205
- package/src/definitions/modules/slider.js +245 -328
- package/src/definitions/modules/slider.less +1 -1
- package/src/definitions/modules/sticky.js +134 -179
- package/src/definitions/modules/tab.js +175 -243
- package/src/definitions/modules/toast.js +108 -146
- package/src/definitions/modules/toast.less +1 -1
- package/src/definitions/modules/transition.js +90 -145
- package/src/theme.less +0 -13
- package/src/themes/basic/elements/icon.variables +1 -1
- package/src/themes/default/collections/grid.variables +0 -30
- package/src/themes/default/collections/table.variables +1 -5
- package/src/themes/default/elements/icon.variables +3 -3
- package/src/themes/default/globals/site.variables +8 -15
- package/src/themes/default/globals/variation.variables +1 -2
- package/src/themes/default/modules/dropdown.variables +1 -0
- package/src/themes/default/modules/slider.variables +1 -1
- package/src/themes/github/elements/icon.variables +1 -1
- package/src/themes/material/elements/icon.variables +1 -1
- package/tasks/README.md +1 -1
- package/tasks/admin/components/create.js +89 -122
- package/tasks/admin/components/init.js +34 -65
- package/tasks/admin/components/update.js +50 -61
- package/tasks/admin/distributions/create.js +71 -111
- package/tasks/admin/distributions/init.js +32 -63
- package/tasks/admin/distributions/update.js +49 -57
- package/tasks/admin/publish.js +1 -1
- package/tasks/admin/register.js +14 -19
- package/tasks/admin/release.js +2 -2
- package/tasks/build/assets.js +14 -18
- package/tasks/build/css.js +59 -68
- package/tasks/build/javascript.js +48 -56
- package/tasks/build.js +4 -6
- package/tasks/check-install.js +5 -8
- package/tasks/clean.js +5 -7
- package/tasks/collections/admin.js +14 -16
- package/tasks/collections/build.js +6 -8
- package/tasks/collections/docs.js +4 -6
- package/tasks/collections/install.js +2 -4
- package/tasks/collections/rtl.js +2 -4
- package/tasks/collections/various.js +2 -4
- package/tasks/config/admin/github.js +9 -19
- package/tasks/config/admin/templates/README.md +2 -2
- package/tasks/config/admin/templates/bower.json +2 -4
- package/tasks/config/admin/templates/composer.json +1 -1
- package/tasks/config/admin/templates/css-package.js +1 -4
- package/tasks/config/admin/templates/less-package.js +1 -3
- package/tasks/config/defaults.js +0 -1
- package/tasks/config/npm/gulpfile.js +4 -6
- package/tasks/config/project/config.js +27 -35
- package/tasks/config/project/install.js +64 -82
- package/tasks/config/project/release.js +7 -9
- package/tasks/config/tasks.js +16 -30
- package/tasks/config/user.js +14 -20
- package/tasks/docs/build.js +26 -31
- package/tasks/docs/metadata.js +30 -39
- package/tasks/docs/serve.js +23 -27
- package/tasks/install.js +94 -128
- package/tasks/rtl/build.js +2 -4
- package/tasks/rtl/watch.js +3 -5
- package/tasks/watch.js +13 -13
- package/test/meteor/fonts.js +1 -2
- package/test/modules/module.spec.js +16 -18
- package/types/fomantic-ui-calendar.d.ts +1 -1
- package/types/fomantic-ui-dropdown.d.ts +45 -1
- package/types/fomantic-ui-embed.d.ts +1 -1
- package/types/fomantic-ui-flyout.d.ts +1 -1
- package/types/fomantic-ui-form.d.ts +0 -7
- package/types/fomantic-ui-modal.d.ts +1 -1
- package/types/fomantic-ui-search.d.ts +12 -6
- package/types/fomantic-ui-toast.d.ts +1 -1
- package/src/themes/basic/assets/fonts/icons.woff +0 -0
- package/src/themes/default/assets/fonts/Lato-Bold.woff +0 -0
- package/src/themes/default/assets/fonts/Lato-BoldItalic.woff +0 -0
- package/src/themes/default/assets/fonts/Lato-Italic.woff +0 -0
- package/src/themes/default/assets/fonts/Lato-Regular.woff +0 -0
- package/src/themes/default/assets/fonts/LatoLatin-Bold.woff +0 -0
- package/src/themes/default/assets/fonts/LatoLatin-BoldItalic.woff +0 -0
- package/src/themes/default/assets/fonts/LatoLatin-Italic.woff +0 -0
- package/src/themes/default/assets/fonts/LatoLatin-Regular.woff +0 -0
- package/src/themes/default/assets/fonts/brand-icons.woff +0 -0
- package/src/themes/default/assets/fonts/icons.woff +0 -0
- package/src/themes/default/assets/fonts/outline-icons.woff +0 -0
- package/src/themes/github/assets/fonts/octicons.woff +0 -0
- package/src/themes/material/assets/fonts/icons.woff +0 -0
@@ -20,45 +20,41 @@
|
|
20
20
|
: globalThis;
|
21
21
|
|
22
22
|
$.fn.progress = function (parameters) {
|
23
|
-
|
24
|
-
$allModules = $(this),
|
23
|
+
let $allModules = $(this);
|
25
24
|
|
26
|
-
|
27
|
-
|
25
|
+
let time = Date.now();
|
26
|
+
let performance = [];
|
28
27
|
|
29
|
-
|
30
|
-
|
31
|
-
|
28
|
+
let query = arguments[0];
|
29
|
+
let methodInvoked = typeof query === 'string';
|
30
|
+
let queryArguments = [].slice.call(arguments, 1);
|
32
31
|
|
33
|
-
|
34
|
-
;
|
32
|
+
let returnedValue;
|
35
33
|
|
36
34
|
$allModules.each(function () {
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
module
|
61
|
-
;
|
35
|
+
let settings = $.isPlainObject(parameters)
|
36
|
+
? $.extend(true, {}, $.fn.progress.settings, parameters)
|
37
|
+
: $.extend({}, $.fn.progress.settings);
|
38
|
+
|
39
|
+
let className = settings.className;
|
40
|
+
let metadata = settings.metadata;
|
41
|
+
let namespace = settings.namespace;
|
42
|
+
let selector = settings.selector;
|
43
|
+
let error = settings.error;
|
44
|
+
|
45
|
+
let eventNamespace = '.' + namespace;
|
46
|
+
let moduleNamespace = 'module-' + namespace;
|
47
|
+
|
48
|
+
let $module = $(this);
|
49
|
+
let $bars = $(this).find(selector.bar);
|
50
|
+
let $progresses = $(this).find(selector.progress);
|
51
|
+
let $label = $(this).find(selector.label);
|
52
|
+
|
53
|
+
let element = this;
|
54
|
+
let instance = $module.data(moduleNamespace);
|
55
|
+
|
56
|
+
let animating = false;
|
57
|
+
let module;
|
62
58
|
module = {
|
63
59
|
helper: {
|
64
60
|
sum: function (nums) {
|
@@ -69,13 +65,13 @@
|
|
69
65
|
/**
|
70
66
|
* Derive precision for multiple progress with total and values.
|
71
67
|
*
|
72
|
-
* This helper dervices a precision that is
|
68
|
+
* This helper dervices a precision that is large enough to show the minimum value of multiple progress.
|
73
69
|
*
|
74
70
|
* Example1
|
75
71
|
* - total: 1122
|
76
72
|
* - values: [325, 111, 74, 612]
|
77
73
|
* - min ratio: 74/1122 = 0.0659...
|
78
|
-
* - required precision:
|
74
|
+
* - required precision: 100
|
79
75
|
*
|
80
76
|
* Example2
|
81
77
|
* - total: 10541
|
@@ -88,9 +84,9 @@
|
|
88
84
|
* @returns {number} A precision. Could be 1, 10, 100, ... 1e+10.
|
89
85
|
*/
|
90
86
|
derivePrecision: function (min, total) {
|
91
|
-
|
92
|
-
|
93
|
-
|
87
|
+
let precisionPower = 0;
|
88
|
+
let precision = 1;
|
89
|
+
let ratio = min / total;
|
94
90
|
while (precisionPower < 10) {
|
95
91
|
ratio *= precision;
|
96
92
|
if (ratio > 1) {
|
@@ -124,8 +120,7 @@
|
|
124
120
|
module.verbose('Storing instance of progress', module);
|
125
121
|
instance = module;
|
126
122
|
$module
|
127
|
-
.data(moduleNamespace, module)
|
128
|
-
;
|
123
|
+
.data(moduleNamespace, module);
|
129
124
|
},
|
130
125
|
destroy: function () {
|
131
126
|
module.verbose('Destroying previous progress for', $module);
|
@@ -151,13 +146,11 @@
|
|
151
146
|
|
152
147
|
read: {
|
153
148
|
metadata: function () {
|
154
|
-
|
155
|
-
data
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
}
|
160
|
-
;
|
149
|
+
let data = {
|
150
|
+
percent: module.helper.forceArray($module.data(metadata.percent)),
|
151
|
+
total: $module.data(metadata.total),
|
152
|
+
value: module.helper.forceArray($module.data(metadata.value)),
|
153
|
+
};
|
161
154
|
if (data.total !== undefined) {
|
162
155
|
module.debug('Total value set from metadata', data.total);
|
163
156
|
module.set.total(data.total);
|
@@ -195,8 +188,7 @@
|
|
195
188
|
.one('transitionend' + eventNamespace, function (event) {
|
196
189
|
clearTimeout(module.failSafeTimer);
|
197
190
|
callback.call(this, event);
|
198
|
-
})
|
199
|
-
;
|
191
|
+
});
|
200
192
|
module.failSafeTimer = setTimeout(function () {
|
201
193
|
$bars.triggerHandler('transitionend');
|
202
194
|
}, settings.duration + settings.failSafeDelay);
|
@@ -205,10 +197,8 @@
|
|
205
197
|
},
|
206
198
|
|
207
199
|
increment: function (incrementValue) {
|
208
|
-
|
209
|
-
|
210
|
-
newValue
|
211
|
-
;
|
200
|
+
let startValue;
|
201
|
+
let newValue;
|
212
202
|
if (module.has.total()) {
|
213
203
|
startValue = module.get.value();
|
214
204
|
incrementValue = incrementValue || 1;
|
@@ -222,11 +212,9 @@
|
|
222
212
|
module.set.progress(newValue);
|
223
213
|
},
|
224
214
|
decrement: function (decrementValue) {
|
225
|
-
|
226
|
-
|
227
|
-
|
228
|
-
newValue
|
229
|
-
;
|
215
|
+
let total = module.get.total();
|
216
|
+
let startValue;
|
217
|
+
let newValue;
|
230
218
|
if (total) {
|
231
219
|
startValue = module.get.value();
|
232
220
|
decrementValue = decrementValue || 1;
|
@@ -257,24 +245,21 @@
|
|
257
245
|
index = 0;
|
258
246
|
}
|
259
247
|
|
260
|
-
|
261
|
-
|
262
|
-
|
263
|
-
|
264
|
-
|
265
|
-
|
266
|
-
|
267
|
-
|
268
|
-
: 100 - percent
|
269
|
-
;
|
248
|
+
let value = module.get.value(index);
|
249
|
+
let total = module.get.total();
|
250
|
+
let percent = animating
|
251
|
+
? module.get.displayPercent(index)
|
252
|
+
: module.get.percent(index);
|
253
|
+
let left = total !== false
|
254
|
+
? Math.max(0, total - value)
|
255
|
+
: 100 - percent;
|
270
256
|
templateText = templateText || '';
|
271
257
|
templateText = templateText
|
272
258
|
.replace('{value}', value)
|
273
259
|
.replace('{total}', total || 0)
|
274
260
|
.replace('{left}', left)
|
275
261
|
.replace('{percent}', percent)
|
276
|
-
.replace('{bar}', settings.text.bars[index] || '')
|
277
|
-
;
|
262
|
+
.replace('{bar}', settings.text.bars[index] || '');
|
278
263
|
module.verbose('Adding variables to progress bar text', templateText);
|
279
264
|
|
280
265
|
return templateText;
|
@@ -323,17 +308,15 @@
|
|
323
308
|
: value;
|
324
309
|
},
|
325
310
|
|
326
|
-
// gets current displayed percentage (if animating values this is the intermediary value)
|
311
|
+
// gets current displayed percentage (if animating values, this is the intermediary value)
|
327
312
|
displayPercent: function (index) {
|
328
|
-
|
329
|
-
|
330
|
-
|
331
|
-
|
332
|
-
|
333
|
-
|
334
|
-
|
335
|
-
: module.percent
|
336
|
-
;
|
313
|
+
let $bar = $($bars[index]);
|
314
|
+
let barWidth = $bar.width();
|
315
|
+
let totalWidth = $module.width();
|
316
|
+
let minDisplay = parseInt($bar.css('min-width'), 10);
|
317
|
+
let displayPercent = barWidth > minDisplay
|
318
|
+
? (barWidth / totalWidth) * 100
|
319
|
+
: module.percent;
|
337
320
|
|
338
321
|
return settings.precision > 0
|
339
322
|
? Math.round(displayPercent * (10 * settings.precision)) / (10 * settings.precision)
|
@@ -421,14 +404,14 @@
|
|
421
404
|
barWidth: function (values) {
|
422
405
|
module.debug('set bar width with ', values);
|
423
406
|
values = module.helper.forceArray(values);
|
424
|
-
|
425
|
-
|
426
|
-
|
427
|
-
|
428
|
-
|
429
|
-
|
430
|
-
|
431
|
-
|
407
|
+
let firstNonZeroIndex = -1;
|
408
|
+
let lastNonZeroIndex = -1;
|
409
|
+
let valuesSum = module.helper.sum(values);
|
410
|
+
let barCounts = $bars.length;
|
411
|
+
let isMultiple = barCounts > 1;
|
412
|
+
let percents = values.map(function (value, index) {
|
413
|
+
let allZero = index === barCounts - 1 && valuesSum === 0;
|
414
|
+
let $bar = $($bars[index]);
|
432
415
|
if (value === 0 && isMultiple && !allZero) {
|
433
416
|
$bar.css('display', 'none');
|
434
417
|
} else {
|
@@ -448,7 +431,7 @@
|
|
448
431
|
return parseFloat(value);
|
449
432
|
});
|
450
433
|
values.forEach(function (_, index) {
|
451
|
-
|
434
|
+
let $bar = $($bars[index]);
|
452
435
|
$bar.css({
|
453
436
|
borderTopLeftRadius: index === firstNonZeroIndex ? '' : '0',
|
454
437
|
borderBottomLeftRadius: index === firstNonZeroIndex ? '' : '0',
|
@@ -457,8 +440,7 @@
|
|
457
440
|
});
|
458
441
|
});
|
459
442
|
$module
|
460
|
-
.attr('data-percent', percents)
|
461
|
-
;
|
443
|
+
.attr('data-percent', percents);
|
462
444
|
},
|
463
445
|
duration: function (duration) {
|
464
446
|
duration = duration || settings.duration;
|
@@ -469,8 +451,7 @@
|
|
469
451
|
$bars
|
470
452
|
.css({
|
471
453
|
'transition-duration': duration,
|
472
|
-
})
|
473
|
-
;
|
454
|
+
});
|
474
455
|
},
|
475
456
|
percent: function (percents) {
|
476
457
|
percents = module.helper.forceArray(percents).map(function (percent) {
|
@@ -482,31 +463,30 @@
|
|
482
463
|
? Math.max(0, Math.min(100, percent))
|
483
464
|
: percent;
|
484
465
|
});
|
485
|
-
|
486
|
-
|
487
|
-
|
488
|
-
|
466
|
+
let hasTotal = module.has.total();
|
467
|
+
let totalPercent = module.helper.sum(percents);
|
468
|
+
let isMultipleValues = percents.length > 1 && hasTotal;
|
469
|
+
let sumTotal = module.helper.sum(module.helper.forceArray(module.value));
|
489
470
|
if (isMultipleValues && sumTotal > module.total) {
|
490
|
-
// Sum values instead of
|
471
|
+
// Sum values instead of percents to avoid precision issues when summing floats
|
491
472
|
module.error(error.sumExceedsTotal, sumTotal, module.total);
|
492
473
|
} else if (!isMultipleValues && totalPercent > 100) {
|
493
|
-
// Sum before rounding since sum of rounded may have error though sum of actual is fine
|
474
|
+
// Sum before rounding, since sum of rounded may have error though sum of actual is fine
|
494
475
|
module.error(error.tooHigh, totalPercent);
|
495
476
|
} else if (totalPercent < 0) {
|
496
477
|
module.error(error.tooLow, totalPercent);
|
497
478
|
} else {
|
498
|
-
|
479
|
+
let autoPrecision = settings.precision > 0
|
499
480
|
? settings.precision
|
500
481
|
: (isMultipleValues
|
501
482
|
? module.helper.derivePrecision(Math.min.apply(null, module.value), module.total)
|
502
483
|
: 0);
|
503
484
|
|
504
485
|
// round display percentage
|
505
|
-
|
486
|
+
let roundedPercents = percents.map(function (percent) {
|
506
487
|
return autoPrecision > 0
|
507
488
|
? Math.round(percent * (10 * autoPrecision)) / (10 * autoPrecision)
|
508
|
-
: Math.round(percent)
|
509
|
-
;
|
489
|
+
: Math.round(percent);
|
510
490
|
});
|
511
491
|
module.percent = roundedPercents;
|
512
492
|
if (hasTotal) {
|
@@ -522,21 +502,17 @@
|
|
522
502
|
settings.onChange.call(element, percents, module.value, module.total);
|
523
503
|
},
|
524
504
|
labelInterval: function () {
|
525
|
-
|
526
|
-
|
527
|
-
|
528
|
-
|
529
|
-
|
530
|
-
|
531
|
-
}
|
532
|
-
;
|
505
|
+
let animationCallback = function () {
|
506
|
+
module.verbose('Bar finished animating, removing continuous label updates');
|
507
|
+
clearInterval(module.interval);
|
508
|
+
animating = false;
|
509
|
+
module.set.labels();
|
510
|
+
};
|
533
511
|
clearInterval(module.interval);
|
534
512
|
module.bind.transitionEnd(animationCallback);
|
535
513
|
animating = true;
|
536
514
|
module.interval = setInterval(function () {
|
537
|
-
|
538
|
-
isInDOM = $.contains(document.documentElement, element)
|
539
|
-
;
|
515
|
+
let isInDOM = $.contains(document.documentElement, element);
|
540
516
|
if (!isInDOM) {
|
541
517
|
clearInterval(module.interval);
|
542
518
|
animating = false;
|
@@ -582,7 +558,7 @@
|
|
582
558
|
},
|
583
559
|
barLabel: function (text) {
|
584
560
|
$progresses.each(function (index, element) {
|
585
|
-
|
561
|
+
let $progress = $(element);
|
586
562
|
if (text !== undefined) {
|
587
563
|
$progress.text(module.get.text(text, index));
|
588
564
|
} else if (settings.label === 'ratio' && module.has.total()) {
|
@@ -685,9 +661,7 @@
|
|
685
661
|
|
686
662
|
update: {
|
687
663
|
toNextValue: function () {
|
688
|
-
|
689
|
-
nextValue = module.nextValue
|
690
|
-
;
|
664
|
+
let nextValue = module.nextValue;
|
691
665
|
if (nextValue) {
|
692
666
|
module.debug('Update interval complete using last updated value', nextValue);
|
693
667
|
module.update.progress(nextValue);
|
@@ -695,14 +669,12 @@
|
|
695
669
|
}
|
696
670
|
},
|
697
671
|
progress: function (values) {
|
698
|
-
|
672
|
+
let hasTotal = module.has.total();
|
699
673
|
if (hasTotal) {
|
700
674
|
module.set.value(values);
|
701
675
|
}
|
702
|
-
|
703
|
-
|
704
|
-
percentComplete
|
705
|
-
;
|
676
|
+
let percentCompletes = module.helper.forceArray(values).map(function (value) {
|
677
|
+
let percentComplete;
|
706
678
|
value = module.get.numericValue(value);
|
707
679
|
if (value === false) {
|
708
680
|
module.error(error.nonNumeric, value);
|
@@ -773,11 +745,9 @@
|
|
773
745
|
},
|
774
746
|
performance: {
|
775
747
|
log: function (message) {
|
776
|
-
|
777
|
-
|
778
|
-
|
779
|
-
previousTime
|
780
|
-
;
|
748
|
+
let currentTime;
|
749
|
+
let executionTime;
|
750
|
+
let previousTime;
|
781
751
|
if (settings.performance) {
|
782
752
|
currentTime = Date.now();
|
783
753
|
previousTime = time || currentTime;
|
@@ -796,10 +766,8 @@
|
|
796
766
|
}, 500);
|
797
767
|
},
|
798
768
|
display: function () {
|
799
|
-
|
800
|
-
|
801
|
-
totalTime = 0
|
802
|
-
;
|
769
|
+
let title = settings.name + ':';
|
770
|
+
let totalTime = 0;
|
803
771
|
time = false;
|
804
772
|
clearTimeout(module.performance.timer);
|
805
773
|
$.each(performance, function (index, data) {
|
@@ -821,22 +789,19 @@
|
|
821
789
|
},
|
822
790
|
},
|
823
791
|
invoke: function (query, passedArguments, context) {
|
824
|
-
|
825
|
-
|
826
|
-
|
827
|
-
|
828
|
-
response
|
829
|
-
;
|
792
|
+
let object = instance;
|
793
|
+
let maxDepth;
|
794
|
+
let found;
|
795
|
+
let response;
|
830
796
|
passedArguments = passedArguments || queryArguments;
|
831
797
|
context = context || element;
|
832
798
|
if (typeof query === 'string' && object !== undefined) {
|
833
799
|
query = query.split(/[ .]/);
|
834
800
|
maxDepth = query.length - 1;
|
835
801
|
$.each(query, function (depth, value) {
|
836
|
-
|
802
|
+
let camelCaseValue = depth !== maxDepth
|
837
803
|
? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
|
838
|
-
: query
|
839
|
-
;
|
804
|
+
: query;
|
840
805
|
if ($.isPlainObject(object[camelCaseValue]) && (depth !== maxDepth)) {
|
841
806
|
object = object[camelCaseValue];
|
842
807
|
} else if (object[camelCaseValue] !== undefined) {
|
@@ -922,7 +887,7 @@
|
|
922
887
|
total: false,
|
923
888
|
value: false,
|
924
889
|
|
925
|
-
// delay in ms for fail
|
890
|
+
// delay in ms for fail-safe animation callback
|
926
891
|
failSafeDelay: 100,
|
927
892
|
|
928
893
|
onLabelUpdate: function (state, text, value, total) {
|