fomantic-ui 2.9.0-beta.20 → 2.9.0-beta.203
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 +197 -3
- package/CONTRIBUTORS.md +74 -37
- package/README.md +1 -1
- package/dist/components/accordion.css +162 -26
- package/dist/components/accordion.js +1 -1
- package/dist/components/accordion.min.css +2 -2
- 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 +29 -25
- package/dist/components/api.min.js +3 -3
- package/dist/components/breadcrumb.css +1 -1
- package/dist/components/breadcrumb.min.css +1 -1
- package/dist/components/button.css +81 -81
- package/dist/components/button.min.css +2 -2
- package/dist/components/calendar.css +1 -1
- package/dist/components/calendar.js +6 -7
- package/dist/components/calendar.min.css +1 -1
- package/dist/components/calendar.min.js +3 -3
- package/dist/components/card.css +26 -19
- package/dist/components/card.min.css +2 -2
- package/dist/components/checkbox.css +2 -1
- package/dist/components/checkbox.js +17 -11
- package/dist/components/checkbox.min.css +2 -2
- package/dist/components/checkbox.min.js +3 -3
- package/dist/components/comment.css +11 -11
- package/dist/components/comment.min.css +1 -1
- package/dist/components/container.css +77 -1
- package/dist/components/container.min.css +2 -2
- package/dist/components/dimmer.css +28 -14
- package/dist/components/dimmer.js +1 -1
- package/dist/components/dimmer.min.css +2 -2
- package/dist/components/dimmer.min.js +2 -2
- package/dist/components/divider.css +1 -1
- package/dist/components/divider.min.css +1 -1
- package/dist/components/dropdown.css +30 -7
- package/dist/components/dropdown.js +58 -33
- package/dist/components/dropdown.min.css +2 -2
- package/dist/components/dropdown.min.js +3 -3
- package/dist/components/embed.css +1 -1
- package/dist/components/embed.js +1 -1
- package/dist/components/embed.min.css +1 -1
- package/dist/components/embed.min.js +2 -2
- package/dist/components/emoji.css +2 -2
- package/dist/components/feed.css +28 -28
- package/dist/components/feed.min.css +2 -2
- package/dist/components/flag.css +731 -625
- package/dist/components/flag.min.css +2 -2
- package/dist/components/form.css +106 -55
- package/dist/components/form.js +25 -23
- package/dist/components/form.min.css +2 -2
- package/dist/components/form.min.js +3 -3
- package/dist/components/grid.css +11 -8
- 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 +6 -1
- 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 +734 -17
- package/dist/components/input.min.css +2 -2
- package/dist/components/item.css +13 -13
- 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 -1
- package/dist/components/list.min.css +1 -1
- package/dist/components/loader.css +1 -1
- package/dist/components/loader.min.css +1 -1
- package/dist/components/menu.css +29 -5
- package/dist/components/menu.min.css +1 -1
- package/dist/components/message.css +41 -41
- package/dist/components/message.min.css +2 -2
- package/dist/components/modal.css +13 -1
- package/dist/components/modal.js +121 -46
- package/dist/components/modal.min.css +2 -2
- package/dist/components/modal.min.js +3 -3
- package/dist/components/nag.css +1 -1
- package/dist/components/nag.js +1 -1
- 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 +5 -3
- package/dist/components/popup.js +1 -1
- 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 +4 -1
- package/dist/components/progress.min.css +1 -1
- package/dist/components/progress.min.js +3 -3
- package/dist/components/rail.css +1 -1
- package/dist/components/rail.min.css +1 -1
- package/dist/components/rating.css +7 -46
- package/dist/components/rating.js +1 -1
- package/dist/components/rating.min.css +2 -2
- 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 +1 -1
- package/dist/components/search.js +1 -1
- package/dist/components/search.min.css +1 -1
- package/dist/components/search.min.js +2 -2
- package/dist/components/segment.css +90 -6
- package/dist/components/segment.min.css +2 -2
- package/dist/components/shape.css +1 -1
- package/dist/components/shape.js +1 -1
- package/dist/components/shape.min.css +1 -1
- package/dist/components/shape.min.js +2 -2
- package/dist/components/sidebar.css +4 -2
- package/dist/components/sidebar.js +1 -1
- package/dist/components/sidebar.min.css +2 -2
- package/dist/components/sidebar.min.js +2 -2
- package/dist/components/site.css +61 -39
- package/dist/components/site.js +1 -1
- package/dist/components/site.min.css +2 -2
- package/dist/components/site.min.js +2 -2
- package/dist/components/slider.js +1 -1
- package/dist/components/slider.min.js +2 -2
- package/dist/components/state.js +1 -1
- 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 +4 -4
- package/dist/components/step.min.css +2 -2
- package/dist/components/sticky.css +1 -1
- package/dist/components/sticky.js +1 -1
- 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 +23 -5
- package/dist/components/tab.min.css +1 -1
- package/dist/components/tab.min.js +3 -3
- package/dist/components/table.css +1168 -26
- 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 +39 -1
- package/dist/components/toast.js +56 -28
- package/dist/components/toast.min.css +2 -2
- package/dist/components/toast.min.js +3 -3
- package/dist/components/transition.css +1 -1
- package/dist/components/transition.js +1 -1
- package/dist/components/transition.min.css +1 -1
- package/dist/components/transition.min.js +2 -2
- package/dist/components/visibility.js +1 -1
- package/dist/components/visibility.min.js +2 -2
- package/dist/semantic.css +4291 -1392
- package/dist/semantic.js +356 -196
- package/dist/semantic.min.css +3 -3
- package/dist/semantic.min.js +3 -3
- package/examples/assets/library/iframe-content.js +5 -5
- package/package.json +2 -2
- package/src/definitions/behaviors/api.js +28 -24
- package/src/definitions/behaviors/form.js +24 -22
- package/src/definitions/collections/form.less +193 -140
- package/src/definitions/collections/grid.less +716 -680
- package/src/definitions/collections/menu.less +173 -126
- package/src/definitions/collections/message.less +48 -46
- package/src/definitions/collections/table.less +849 -262
- package/src/definitions/elements/button.less +360 -347
- package/src/definitions/elements/container.less +126 -8
- package/src/definitions/elements/emoji.less +15 -9
- package/src/definitions/elements/flag.less +7 -17
- package/src/definitions/elements/header.less +42 -35
- package/src/definitions/elements/icon.less +38 -31
- package/src/definitions/elements/input.less +256 -21
- package/src/definitions/elements/label.less +92 -91
- package/src/definitions/elements/list.less +55 -45
- package/src/definitions/elements/loader.less +30 -29
- package/src/definitions/elements/segment.less +146 -27
- package/src/definitions/elements/step.less +52 -48
- package/src/definitions/elements/text.less +17 -15
- package/src/definitions/globals/site.less +23 -2
- package/src/definitions/modules/accordion.less +175 -24
- package/src/definitions/modules/calendar.js +5 -6
- package/src/definitions/modules/checkbox.js +16 -10
- package/src/definitions/modules/checkbox.less +34 -178
- package/src/definitions/modules/dimmer.less +21 -8
- package/src/definitions/modules/dropdown.js +57 -32
- package/src/definitions/modules/dropdown.less +101 -69
- package/src/definitions/modules/modal.js +120 -45
- package/src/definitions/modules/modal.less +12 -0
- package/src/definitions/modules/nag.less +20 -19
- package/src/definitions/modules/popup.less +5 -1
- package/src/definitions/modules/progress.js +3 -0
- package/src/definitions/modules/progress.less +19 -18
- package/src/definitions/modules/rating.less +49 -42
- package/src/definitions/modules/search.less +32 -16
- package/src/definitions/modules/sidebar.less +33 -19
- package/src/definitions/modules/slider.less +39 -38
- package/src/definitions/modules/tab.js +22 -4
- package/src/definitions/modules/toast.js +55 -27
- package/src/definitions/modules/toast.less +48 -16
- package/src/definitions/views/card.less +402 -361
- package/src/definitions/views/comment.less +92 -81
- package/src/definitions/views/feed.less +164 -144
- package/src/definitions/views/item.less +249 -196
- package/src/definitions/views/statistic.less +90 -88
- package/src/themes/bookish/elements/header.overrides +1 -1
- package/src/themes/chubby/elements/button.overrides +1 -1
- package/src/themes/chubby/elements/header.overrides +1 -1
- package/src/themes/default/collections/menu.variables +6 -0
- package/src/themes/default/collections/table.variables +52 -0
- package/src/themes/default/elements/button.variables +2 -1
- package/src/themes/default/elements/container.variables +8 -0
- package/src/themes/default/elements/flag.overrides +1635 -986
- package/src/themes/default/elements/flag.variables +7 -5
- package/src/themes/default/elements/icon.overrides +35 -28
- package/src/themes/default/elements/icon.variables +1 -0
- package/src/themes/default/elements/input.variables +15 -0
- package/src/themes/default/elements/segment.variables +8 -0
- package/src/themes/default/elements/step.overrides +1 -1
- package/src/themes/default/globals/site.variables +6 -0
- package/src/themes/default/globals/variation.variables +134 -6
- package/src/themes/default/modules/accordion.variables +49 -2
- package/src/themes/default/modules/checkbox.variables +5 -5
- package/src/themes/default/modules/dimmer.variables +1 -1
- package/src/themes/default/modules/dropdown.variables +1 -1
- package/src/themes/default/modules/modal.variables +13 -0
- package/src/themes/default/modules/toast.variables +3 -0
- package/src/themes/famfamfam/elements/flag.overrides +1026 -0
- package/src/themes/famfamfam/elements/flag.variables +13 -0
- package/src/themes/instagram/views/card.overrides +1 -1
- package/src/themes/material/collections/menu.overrides +1 -1
- package/src/themes/material/elements/button.overrides +1 -1
- package/src/themes/material/elements/header.overrides +1 -1
- package/src/themes/material/modules/dropdown.overrides +1 -1
- package/src/themes/material/modules/modal.overrides +1 -1
- package/src/themes/rtl/globals/site.overrides +1 -1
- package/tasks/build/css.js +6 -1
- package/test/helpers/sinon.js +1 -1
package/dist/semantic.js
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
/*
|
2
|
-
* # Fomantic UI - 2.9.0-beta.
|
2
|
+
* # Fomantic UI - 2.9.0-beta.203
|
3
3
|
* https://github.com/fomantic/Fomantic-UI
|
4
4
|
* http://fomantic-ui.com/
|
5
5
|
*
|
6
|
-
* Copyright
|
6
|
+
* Copyright 2022 Contributors
|
7
7
|
* Released under the MIT license
|
8
8
|
* http://opensource.org/licenses/MIT
|
9
9
|
*
|
10
10
|
*/
|
11
11
|
/*!
|
12
|
-
* # Fomantic-UI 2.9.0-beta.
|
12
|
+
* # Fomantic-UI 2.9.0-beta.203 - Site
|
13
13
|
* http://github.com/fomantic/Fomantic-UI/
|
14
14
|
*
|
15
15
|
*
|
@@ -503,7 +503,7 @@ $.extend($.expr[ ":" ], {
|
|
503
503
|
})( jQuery, window, document );
|
504
504
|
|
505
505
|
/*!
|
506
|
-
* # Fomantic-UI 2.9.0-beta.
|
506
|
+
* # Fomantic-UI 2.9.0-beta.203 - Form Validation
|
507
507
|
* http://github.com/fomantic/Fomantic-UI/
|
508
508
|
*
|
509
509
|
*
|
@@ -923,6 +923,7 @@ $.fn.form = function(parameters) {
|
|
923
923
|
$field.one('keyup' + eventNamespace, module.event.field.keyup);
|
924
924
|
module.submit();
|
925
925
|
module.debug('Enter pressed on input submitting form');
|
926
|
+
event.preventDefault();
|
926
927
|
}
|
927
928
|
keyHeldDown = true;
|
928
929
|
}
|
@@ -1047,7 +1048,7 @@ $.fn.form = function(parameters) {
|
|
1047
1048
|
parts,
|
1048
1049
|
suffixPrompt
|
1049
1050
|
;
|
1050
|
-
if(ancillary && ancillary.indexOf('..') >= 0) {
|
1051
|
+
if(ancillary && ['integer', 'decimal', 'number'].indexOf(ruleName) >= 0 && ancillary.indexOf('..') >= 0) {
|
1051
1052
|
parts = ancillary.split('..', 2);
|
1052
1053
|
if(!rule.prompt) {
|
1053
1054
|
suffixPrompt = (
|
@@ -1390,13 +1391,13 @@ $.fn.form = function(parameters) {
|
|
1390
1391
|
}
|
1391
1392
|
if(settings.inline) {
|
1392
1393
|
if(!promptExists) {
|
1393
|
-
$prompt =
|
1394
|
+
$prompt = $('<div/>').addClass(className.label);
|
1394
1395
|
$prompt
|
1395
1396
|
.appendTo($fieldGroup)
|
1396
1397
|
;
|
1397
1398
|
}
|
1398
1399
|
$prompt
|
1399
|
-
.html(errors
|
1400
|
+
.html(settings.templates.prompt(errors))
|
1400
1401
|
;
|
1401
1402
|
if(!promptExists) {
|
1402
1403
|
if(settings.transition && module.can.useElement('transition') && $module.transition('is supported')) {
|
@@ -1589,12 +1590,15 @@ $.fn.form = function(parameters) {
|
|
1589
1590
|
}
|
1590
1591
|
else if(isCheckbox) {
|
1591
1592
|
module.verbose('Setting checkbox value', value, $element);
|
1592
|
-
if(value === true || value === 1) {
|
1593
|
+
if(value === true || value === 1 || value === 'on') {
|
1593
1594
|
$element.checkbox('check');
|
1594
1595
|
}
|
1595
1596
|
else {
|
1596
1597
|
$element.checkbox('uncheck');
|
1597
1598
|
}
|
1599
|
+
if(typeof value === 'string') {
|
1600
|
+
$field.val(value);
|
1601
|
+
}
|
1598
1602
|
}
|
1599
1603
|
else if(isDropdown) {
|
1600
1604
|
module.verbose('Setting dropdown value', value, $element);
|
@@ -1707,7 +1711,7 @@ $.fn.form = function(parameters) {
|
|
1707
1711
|
if(event && $module.data('moduleApi') !== undefined) {
|
1708
1712
|
event.stopImmediatePropagation();
|
1709
1713
|
}
|
1710
|
-
if(settings.errorFocus) {
|
1714
|
+
if(settings.errorFocus && ignoreCallbacks !== true) {
|
1711
1715
|
var focusElement, hasTabIndex = true;
|
1712
1716
|
if (typeof settings.errorFocus === 'string') {
|
1713
1717
|
focusElement = $(settings.errorFocus);
|
@@ -2030,7 +2034,7 @@ $.fn.form.settings = {
|
|
2030
2034
|
|
2031
2035
|
autoCheckRequired : false,
|
2032
2036
|
preventLeaving : false,
|
2033
|
-
errorFocus :
|
2037
|
+
errorFocus : true,
|
2034
2038
|
dateHandling : 'date', // 'date', 'input', 'formatter'
|
2035
2039
|
|
2036
2040
|
onValid : function() {},
|
@@ -2086,7 +2090,6 @@ $.fn.form.settings = {
|
|
2086
2090
|
doesntContain : '{name} cannot contain "{ruleValue}"',
|
2087
2091
|
doesntContainExactly : '{name} cannot contain exactly "{ruleValue}"',
|
2088
2092
|
minLength : '{name} must be at least {ruleValue} characters',
|
2089
|
-
length : '{name} must be at least {ruleValue} characters',
|
2090
2093
|
exactLength : '{name} must be exactly {ruleValue} characters',
|
2091
2094
|
maxLength : '{name} cannot be longer than {ruleValue} characters',
|
2092
2095
|
match : '{name} must match {ruleValue} field',
|
@@ -2100,7 +2103,7 @@ $.fn.form.settings = {
|
|
2100
2103
|
selector : {
|
2101
2104
|
checkbox : 'input[type="checkbox"], input[type="radio"]',
|
2102
2105
|
clear : '.clear',
|
2103
|
-
field : 'input:not(.search):not([type="file"]), textarea, select',
|
2106
|
+
field : 'input:not(.search):not([type="file"]):not([type="reset"]):not([type="button"]):not([type="submit"]), textarea, select',
|
2104
2107
|
group : '.field',
|
2105
2108
|
input : 'input:not([type="file"])',
|
2106
2109
|
message : '.error.message',
|
@@ -2141,15 +2144,22 @@ $.fn.form.settings = {
|
|
2141
2144
|
html += '<li>' + value + '</li>';
|
2142
2145
|
});
|
2143
2146
|
html += '</ul>';
|
2144
|
-
return
|
2147
|
+
return html;
|
2145
2148
|
},
|
2146
2149
|
|
2147
|
-
// template that produces label
|
2148
|
-
prompt: function(errors
|
2149
|
-
|
2150
|
-
|
2151
|
-
|
2150
|
+
// template that produces label content
|
2151
|
+
prompt: function(errors) {
|
2152
|
+
if(errors.length === 1){
|
2153
|
+
return errors[0];
|
2154
|
+
}
|
2155
|
+
var
|
2156
|
+
html = '<ul class="ui list">'
|
2152
2157
|
;
|
2158
|
+
$.each(errors, function(index, value) {
|
2159
|
+
html += '<li>' + value + '</li>';
|
2160
|
+
});
|
2161
|
+
html += '</ul>';
|
2162
|
+
return html;
|
2153
2163
|
}
|
2154
2164
|
},
|
2155
2165
|
|
@@ -2359,14 +2369,6 @@ $.fn.form.settings = {
|
|
2359
2369
|
;
|
2360
2370
|
},
|
2361
2371
|
|
2362
|
-
// see rls notes for 2.0.6 (this is a duplicate of minLength)
|
2363
|
-
length: function(value, requiredLength) {
|
2364
|
-
return (value !== undefined)
|
2365
|
-
? (value.length >= requiredLength)
|
2366
|
-
: false
|
2367
|
-
;
|
2368
|
-
},
|
2369
|
-
|
2370
2372
|
// is exactly length
|
2371
2373
|
exactLength: function(value, requiredLength) {
|
2372
2374
|
return (value !== undefined)
|
@@ -2575,7 +2577,7 @@ $.fn.form.settings = {
|
|
2575
2577
|
})( jQuery, window, document );
|
2576
2578
|
|
2577
2579
|
/*!
|
2578
|
-
* # Fomantic-UI 2.9.0-beta.
|
2580
|
+
* # Fomantic-UI 2.9.0-beta.203 - Accordion
|
2579
2581
|
* http://github.com/fomantic/Fomantic-UI/
|
2580
2582
|
*
|
2581
2583
|
*
|
@@ -3194,7 +3196,7 @@ $.extend( $.easing, {
|
|
3194
3196
|
|
3195
3197
|
|
3196
3198
|
/*!
|
3197
|
-
* # Fomantic-UI 2.9.0-beta.
|
3199
|
+
* # Fomantic-UI 2.9.0-beta.203 - Calendar
|
3198
3200
|
* http://github.com/fomantic/Fomantic-UI/
|
3199
3201
|
*
|
3200
3202
|
*
|
@@ -3317,7 +3319,7 @@ $.fn.calendar = function(parameters) {
|
|
3317
3319
|
module.set.maxDate($module.data(metadata.maxDate));
|
3318
3320
|
}
|
3319
3321
|
module.setting('type', module.get.type());
|
3320
|
-
module.setting('on', settings.on ||
|
3322
|
+
module.setting('on', settings.on || 'click');
|
3321
3323
|
},
|
3322
3324
|
popup: function () {
|
3323
3325
|
if (settings.inline) {
|
@@ -3348,7 +3350,10 @@ $.fn.calendar = function(parameters) {
|
|
3348
3350
|
module.refreshTooltips();
|
3349
3351
|
return settings.onVisible.apply($container, arguments);
|
3350
3352
|
};
|
3351
|
-
var onHidden =
|
3353
|
+
var onHidden = function () {
|
3354
|
+
module.blur();
|
3355
|
+
return settings.onHidden.apply($container, arguments)
|
3356
|
+
}
|
3352
3357
|
if (!$input.length) {
|
3353
3358
|
//no input, $container has to handle focus/blur
|
3354
3359
|
$container.attr('tabindex', '0');
|
@@ -3357,10 +3362,6 @@ $.fn.calendar = function(parameters) {
|
|
3357
3362
|
module.focus();
|
3358
3363
|
return settings.onVisible.apply($container, arguments);
|
3359
3364
|
};
|
3360
|
-
onHidden = function () {
|
3361
|
-
module.blur();
|
3362
|
-
return settings.onHidden.apply($container, arguments);
|
3363
|
-
};
|
3364
3365
|
}
|
3365
3366
|
var onShow = function () {
|
3366
3367
|
//reset the focus date onShow
|
@@ -5067,7 +5068,7 @@ $.fn.calendar.settings = {
|
|
5067
5068
|
})(jQuery, window, document);
|
5068
5069
|
|
5069
5070
|
/*!
|
5070
|
-
* # Fomantic-UI 2.9.0-beta.
|
5071
|
+
* # Fomantic-UI 2.9.0-beta.203 - Checkbox
|
5071
5072
|
* http://github.com/fomantic/Fomantic-UI/
|
5072
5073
|
*
|
5073
5074
|
*
|
@@ -5307,18 +5308,26 @@ $.fn.checkbox = function(parameters) {
|
|
5307
5308
|
}
|
5308
5309
|
}
|
5309
5310
|
|
5311
|
+
shortcutPressed = false;
|
5310
5312
|
if(key == keyCode.escape) {
|
5311
5313
|
module.verbose('Escape key pressed blurring field');
|
5312
5314
|
$input.blur();
|
5313
5315
|
shortcutPressed = true;
|
5314
5316
|
}
|
5315
|
-
else if(!event.ctrlKey &&
|
5316
|
-
|
5317
|
-
|
5318
|
-
|
5319
|
-
|
5320
|
-
|
5321
|
-
|
5317
|
+
else if(!event.ctrlKey && module.can.change()) {
|
5318
|
+
if( key == keyCode.space || (key == keyCode.enter && settings.enableEnterKey) ) {
|
5319
|
+
module.verbose('Enter/space key pressed, toggling checkbox');
|
5320
|
+
module.toggle();
|
5321
|
+
shortcutPressed = true;
|
5322
|
+
} else if($module.is('.toggle, .slider') && !module.is.radio()) {
|
5323
|
+
if(key == keyCode.left && module.is.checked()) {
|
5324
|
+
module.uncheck();
|
5325
|
+
shortcutPressed = true;
|
5326
|
+
} else if(key == keyCode.right && module.is.unchecked()) {
|
5327
|
+
module.check();
|
5328
|
+
shortcutPressed = true;
|
5329
|
+
}
|
5330
|
+
}
|
5322
5331
|
}
|
5323
5332
|
},
|
5324
5333
|
keyup: function(event) {
|
@@ -5391,7 +5400,6 @@ $.fn.checkbox = function(parameters) {
|
|
5391
5400
|
settings.onEnable.call(input);
|
5392
5401
|
// preserve legacy callbacks
|
5393
5402
|
settings.onEnabled.call(input);
|
5394
|
-
module.trigger.change();
|
5395
5403
|
}
|
5396
5404
|
},
|
5397
5405
|
|
@@ -5406,7 +5414,6 @@ $.fn.checkbox = function(parameters) {
|
|
5406
5414
|
settings.onDisable.call(input);
|
5407
5415
|
// preserve legacy callbacks
|
5408
5416
|
settings.onDisabled.call(input);
|
5409
|
-
module.trigger.change();
|
5410
5417
|
}
|
5411
5418
|
},
|
5412
5419
|
|
@@ -5934,7 +5941,7 @@ $.fn.checkbox.settings = {
|
|
5934
5941
|
|
5935
5942
|
selector : {
|
5936
5943
|
checkbox : '.ui.checkbox',
|
5937
|
-
label : 'label
|
5944
|
+
label : 'label',
|
5938
5945
|
input : 'input[type="checkbox"], input[type="radio"]',
|
5939
5946
|
link : 'a[href]'
|
5940
5947
|
}
|
@@ -5944,7 +5951,7 @@ $.fn.checkbox.settings = {
|
|
5944
5951
|
})( jQuery, window, document );
|
5945
5952
|
|
5946
5953
|
/*!
|
5947
|
-
* # Fomantic-UI 2.9.0-beta.
|
5954
|
+
* # Fomantic-UI 2.9.0-beta.203 - Dimmer
|
5948
5955
|
* http://github.com/fomantic/Fomantic-UI/
|
5949
5956
|
*
|
5950
5957
|
*
|
@@ -6701,7 +6708,7 @@ $.fn.dimmer.settings = {
|
|
6701
6708
|
})( jQuery, window, document );
|
6702
6709
|
|
6703
6710
|
/*!
|
6704
|
-
* # Fomantic-UI 2.9.0-beta.
|
6711
|
+
* # Fomantic-UI 2.9.0-beta.203 - Dropdown
|
6705
6712
|
* http://github.com/fomantic/Fomantic-UI/
|
6706
6713
|
*
|
6707
6714
|
*
|
@@ -6902,6 +6909,7 @@ $.fn.dropdown = function(parameters) {
|
|
6902
6909
|
select: function() {
|
6903
6910
|
if(module.has.input() && selectObserver) {
|
6904
6911
|
selectObserver.observe($module[0], {
|
6912
|
+
attributes: true,
|
6905
6913
|
childList : true,
|
6906
6914
|
subtree : true
|
6907
6915
|
});
|
@@ -7123,6 +7131,9 @@ $.fn.dropdown = function(parameters) {
|
|
7123
7131
|
module.debug('Disabling dropdown');
|
7124
7132
|
$module.addClass(className.disabled);
|
7125
7133
|
}
|
7134
|
+
if($input.is('[required]')) {
|
7135
|
+
settings.forceSelection = true;
|
7136
|
+
}
|
7126
7137
|
$input
|
7127
7138
|
.removeAttr('required')
|
7128
7139
|
.removeAttr('class')
|
@@ -7327,6 +7338,11 @@ $.fn.dropdown = function(parameters) {
|
|
7327
7338
|
$module
|
7328
7339
|
.on('change' + eventNamespace, selector.input, module.event.change)
|
7329
7340
|
;
|
7341
|
+
if(module.is.multiple() && module.is.searchSelection()) {
|
7342
|
+
$module
|
7343
|
+
.on('paste' + eventNamespace, selector.search, module.event.paste)
|
7344
|
+
;
|
7345
|
+
}
|
7330
7346
|
},
|
7331
7347
|
mouseEvents: function() {
|
7332
7348
|
module.verbose('Binding mouse events');
|
@@ -7546,7 +7562,7 @@ $.fn.dropdown = function(parameters) {
|
|
7546
7562
|
var value = module.is.multiple() ? module.get.values() : module.get.value();
|
7547
7563
|
if (value !== '') {
|
7548
7564
|
module.verbose('Value(s) present after click icon, select value(s) in items');
|
7549
|
-
module.set.selected(value, null,
|
7565
|
+
module.set.selected(value, null, true, true);
|
7550
7566
|
}
|
7551
7567
|
}
|
7552
7568
|
iconClicked = false;
|
@@ -7775,6 +7791,15 @@ $.fn.dropdown = function(parameters) {
|
|
7775
7791
|
},
|
7776
7792
|
|
7777
7793
|
event: {
|
7794
|
+
paste: function(event) {
|
7795
|
+
var pasteValue = (event.originalEvent.clipboardData || window.clipboardData).getData('text'),
|
7796
|
+
tokens = pasteValue.split(settings.delimiter)
|
7797
|
+
;
|
7798
|
+
tokens.forEach(function(value){
|
7799
|
+
module.set.selected(module.escape.htmlEntities(value.trim()), null, true, true);
|
7800
|
+
});
|
7801
|
+
event.preventDefault();
|
7802
|
+
},
|
7778
7803
|
change: function() {
|
7779
7804
|
if(!internalChange) {
|
7780
7805
|
module.debug('Input changed, updating selection');
|
@@ -7987,8 +8012,8 @@ $.fn.dropdown = function(parameters) {
|
|
7987
8012
|
},
|
7988
8013
|
select: {
|
7989
8014
|
mutation: function(mutations) {
|
7990
|
-
module.debug('<select> modified, recreating menu');
|
7991
8015
|
if(module.is.selectMutation(mutations)) {
|
8016
|
+
module.debug('<select> modified, recreating menu');
|
7992
8017
|
module.disconnect.selectObserver();
|
7993
8018
|
module.refresh();
|
7994
8019
|
module.setup.select();
|
@@ -8233,7 +8258,7 @@ $.fn.dropdown = function(parameters) {
|
|
8233
8258
|
hasSubMenu = ($subMenu.length> 0),
|
8234
8259
|
hasSelectedItem = ($selectedItem.length > 0),
|
8235
8260
|
selectedIsSelectable = ($selectedItem.not(selector.unselectable).length > 0),
|
8236
|
-
delimiterPressed = (pressedKey == keys.delimiter &&
|
8261
|
+
delimiterPressed = (pressedKey == keys.delimiter && module.is.multiple()),
|
8237
8262
|
isAdditionWithoutMenu = (settings.allowAdditions && settings.hideAdditions && (pressedKey == keys.enter || delimiterPressed) && selectedIsSelectable),
|
8238
8263
|
$nextItem,
|
8239
8264
|
isSubMenuItem,
|
@@ -8331,7 +8356,7 @@ $.fn.dropdown = function(parameters) {
|
|
8331
8356
|
.addClass(className.selected)
|
8332
8357
|
;
|
8333
8358
|
module.set.scrollPosition($nextItem);
|
8334
|
-
if(settings.selectOnKeydown && module.is.single()) {
|
8359
|
+
if(settings.selectOnKeydown && module.is.single() && !$nextItem.hasClass(className.actionable)) {
|
8335
8360
|
module.set.selectedItem($nextItem);
|
8336
8361
|
}
|
8337
8362
|
}
|
@@ -8358,7 +8383,7 @@ $.fn.dropdown = function(parameters) {
|
|
8358
8383
|
.addClass(className.selected)
|
8359
8384
|
;
|
8360
8385
|
module.set.scrollPosition($nextItem);
|
8361
|
-
if(settings.selectOnKeydown && module.is.single()) {
|
8386
|
+
if(settings.selectOnKeydown && module.is.single() && !$nextItem.hasClass(className.actionable)) {
|
8362
8387
|
module.set.selectedItem($nextItem);
|
8363
8388
|
}
|
8364
8389
|
}
|
@@ -8489,7 +8514,7 @@ $.fn.dropdown = function(parameters) {
|
|
8489
8514
|
;
|
8490
8515
|
if( module.can.activate( $(element) ) ) {
|
8491
8516
|
module.set.selected(value, $(element));
|
8492
|
-
if(!module.is.multiple()) {
|
8517
|
+
if(!module.is.multiple() && !(!settings.collapseOnActionable && $(element).hasClass(className.actionable))) {
|
8493
8518
|
module.hideAndClear();
|
8494
8519
|
}
|
8495
8520
|
}
|
@@ -8502,7 +8527,7 @@ $.fn.dropdown = function(parameters) {
|
|
8502
8527
|
;
|
8503
8528
|
if( module.can.activate( $(element) ) ) {
|
8504
8529
|
module.set.value(value, text, $(element));
|
8505
|
-
if(!module.is.multiple()) {
|
8530
|
+
if(!module.is.multiple() && !(!settings.collapseOnActionable && $(element).hasClass(className.actionable))) {
|
8506
8531
|
module.hideAndClear();
|
8507
8532
|
}
|
8508
8533
|
}
|
@@ -9022,7 +9047,7 @@ $.fn.dropdown = function(parameters) {
|
|
9022
9047
|
module.error(error.noStorage);
|
9023
9048
|
return;
|
9024
9049
|
}
|
9025
|
-
name = sessionStorage.getItem(value);
|
9050
|
+
name = sessionStorage.getItem(value + elementNamespace);
|
9026
9051
|
return (name !== undefined)
|
9027
9052
|
? name
|
9028
9053
|
: false
|
@@ -9066,7 +9091,7 @@ $.fn.dropdown = function(parameters) {
|
|
9066
9091
|
return;
|
9067
9092
|
}
|
9068
9093
|
module.verbose('Saving remote data to session storage', value, name);
|
9069
|
-
sessionStorage.setItem(value, name);
|
9094
|
+
sessionStorage.setItem(value + elementNamespace, name);
|
9070
9095
|
}
|
9071
9096
|
},
|
9072
9097
|
|
@@ -9126,7 +9151,7 @@ $.fn.dropdown = function(parameters) {
|
|
9126
9151
|
$nextSelectedItem
|
9127
9152
|
.addClass(className.selected)
|
9128
9153
|
;
|
9129
|
-
if(settings.selectOnKeydown && module.is.single()) {
|
9154
|
+
if(settings.selectOnKeydown && module.is.single() && !$nextItem.hasClass(className.actionable)) {
|
9130
9155
|
module.set.selectedItem($nextSelectedItem);
|
9131
9156
|
}
|
9132
9157
|
$menu
|
@@ -9329,7 +9354,7 @@ $.fn.dropdown = function(parameters) {
|
|
9329
9354
|
module.set.scrollPosition($nextValue);
|
9330
9355
|
$selectedItem.removeClass(className.selected);
|
9331
9356
|
$nextValue.addClass(className.selected);
|
9332
|
-
if(settings.selectOnKeydown && module.is.single()) {
|
9357
|
+
if(settings.selectOnKeydown && module.is.single() && !$nextItem.hasClass(className.actionable)) {
|
9333
9358
|
module.set.selectedItem($nextValue);
|
9334
9359
|
}
|
9335
9360
|
}
|
@@ -9467,17 +9492,24 @@ $.fn.dropdown = function(parameters) {
|
|
9467
9492
|
|
9468
9493
|
isFiltered = $selected.hasClass(className.filtered),
|
9469
9494
|
isActive = $selected.hasClass(className.active),
|
9495
|
+
isActionable = $selected.hasClass(className.actionable),
|
9470
9496
|
isUserValue = $selected.hasClass(className.addition),
|
9471
9497
|
shouldAnimate = (isMultiple && $selectedItem.length == 1)
|
9472
9498
|
;
|
9473
|
-
if(
|
9499
|
+
if(isActionable){
|
9500
|
+
if((!isMultiple || (!isActive || isUserValue)) && settings.apiSettings && settings.saveRemoteData) {
|
9501
|
+
module.save.remoteData(selectedText, selectedValue);
|
9502
|
+
}
|
9503
|
+
settings.onActionable.call(element, selectedValue, selectedText, $selected);
|
9504
|
+
}
|
9505
|
+
else if(isMultiple) {
|
9474
9506
|
if(!isActive || isUserValue) {
|
9475
9507
|
if(settings.apiSettings && settings.saveRemoteData) {
|
9476
9508
|
module.save.remoteData(selectedText, selectedValue);
|
9477
9509
|
}
|
9478
9510
|
if(settings.useLabels) {
|
9479
|
-
module.add.label(selectedValue, selectedText, shouldAnimate);
|
9480
9511
|
module.add.value(selectedValue, selectedText, $selected);
|
9512
|
+
module.add.label(selectedValue, selectedText, shouldAnimate);
|
9481
9513
|
module.set.activeItem($selected);
|
9482
9514
|
module.filterActive();
|
9483
9515
|
module.select.nextAvailable($selectedItem);
|
@@ -9497,7 +9529,7 @@ $.fn.dropdown = function(parameters) {
|
|
9497
9529
|
if(settings.apiSettings && settings.saveRemoteData) {
|
9498
9530
|
module.save.remoteData(selectedText, selectedValue);
|
9499
9531
|
}
|
9500
|
-
if (!keepSearchTerm) {
|
9532
|
+
if (!keepSearchTerm && !$selected.hasClass(className.actionable)) {
|
9501
9533
|
module.set.text(selectedText);
|
9502
9534
|
}
|
9503
9535
|
module.set.value(selectedValue, selectedText, $selected, preventChangeTrigger);
|
@@ -9687,7 +9719,7 @@ $.fn.dropdown = function(parameters) {
|
|
9687
9719
|
}
|
9688
9720
|
// extend current array
|
9689
9721
|
if(Array.isArray(currentValue)) {
|
9690
|
-
newValue = currentValue.concat([addedValue]);
|
9722
|
+
newValue = $selectedItem.hasClass(className.actionable) ? currentValue : currentValue.concat([addedValue]);
|
9691
9723
|
newValue = module.get.uniqueArray(newValue);
|
9692
9724
|
}
|
9693
9725
|
else {
|
@@ -9771,18 +9803,10 @@ $.fn.dropdown = function(parameters) {
|
|
9771
9803
|
return;
|
9772
9804
|
}
|
9773
9805
|
// temporarily disconnect observer
|
9774
|
-
|
9775
|
-
selectObserver.disconnect();
|
9776
|
-
module.verbose('Temporarily disconnecting mutation observer');
|
9777
|
-
}
|
9806
|
+
module.disconnect.selectObserver();
|
9778
9807
|
$option.remove();
|
9779
9808
|
module.verbose('Removing user addition as an <option>', escapedValue);
|
9780
|
-
|
9781
|
-
selectObserver.observe($input[0], {
|
9782
|
-
childList : true,
|
9783
|
-
subtree : true
|
9784
|
-
});
|
9785
|
-
}
|
9809
|
+
module.observe.select();
|
9786
9810
|
},
|
9787
9811
|
message: function() {
|
9788
9812
|
$menu.children(selector.message).remove();
|
@@ -10147,7 +10171,7 @@ $.fn.dropdown = function(parameters) {
|
|
10147
10171
|
selectChanged = false
|
10148
10172
|
;
|
10149
10173
|
$.each(mutations, function(index, mutation) {
|
10150
|
-
if($(mutation.target).is('select') || $(mutation.addedNodes).is('select')) {
|
10174
|
+
if($(mutation.target).is('select, option, optgroup') || $(mutation.addedNodes).is('select')) {
|
10151
10175
|
selectChanged = true;
|
10152
10176
|
return false;
|
10153
10177
|
}
|
@@ -10692,7 +10716,7 @@ $.fn.dropdown.settings = {
|
|
10692
10716
|
keepOnScreen : true, // Whether dropdown should check whether it is on screen before showing
|
10693
10717
|
|
10694
10718
|
match : 'both', // what to match against with search selection (both, text, or label)
|
10695
|
-
fullTextSearch :
|
10719
|
+
fullTextSearch : 'exact', // search anywhere in value (set to 'exact' to require exact matches)
|
10696
10720
|
ignoreDiacritics : false, // match results also if they contain diacritics of the same base character (for example searching for "a" will also match "á" or "â" or "à", etc...)
|
10697
10721
|
hideDividers : false, // Whether to hide any divider elements (specified in selector.divider) that are sibling to any items when searched (set to true will hide all dividers, set to 'empty' will hide them when they are not followed by a visible item)
|
10698
10722
|
|
@@ -10700,7 +10724,7 @@ $.fn.dropdown.settings = {
|
|
10700
10724
|
preserveHTML : true, // preserve html when selecting value
|
10701
10725
|
sortSelect : false, // sort selection on init
|
10702
10726
|
|
10703
|
-
forceSelection :
|
10727
|
+
forceSelection : false, // force a choice on blur with search selection
|
10704
10728
|
|
10705
10729
|
allowAdditions : false, // whether multiple select should allow user added values
|
10706
10730
|
ignoreCase : false, // whether to consider case sensitivity when creating labels
|
@@ -10711,7 +10735,7 @@ $.fn.dropdown.settings = {
|
|
10711
10735
|
useLabels : true, // whether multiple select should filter currently active selections from choices
|
10712
10736
|
delimiter : ',', // when multiselect uses normal <input> the values will be delimited with this character
|
10713
10737
|
|
10714
|
-
showOnFocus :
|
10738
|
+
showOnFocus : false, // show menu on focus
|
10715
10739
|
allowReselection : false, // whether current value should trigger callbacks when reselected
|
10716
10740
|
allowTab : true, // add tabindex to element
|
10717
10741
|
allowCategorySelection : false, // allow elements with sub-menus to be selected
|
@@ -10726,6 +10750,8 @@ $.fn.dropdown.settings = {
|
|
10726
10750
|
|
10727
10751
|
headerDivider : true, // whether option headers should have an additional divider line underneath when converted from <select> <optgroup>
|
10728
10752
|
|
10753
|
+
collapseOnActionable : true, // whether the dropdown should collapse upon selection of an actionable item
|
10754
|
+
|
10729
10755
|
// label settings on multi-select
|
10730
10756
|
label: {
|
10731
10757
|
transition : 'scale',
|
@@ -10745,6 +10771,7 @@ $.fn.dropdown.settings = {
|
|
10745
10771
|
onChange : function(value, text, $selected){},
|
10746
10772
|
onAdd : function(value, text, $selected){},
|
10747
10773
|
onRemove : function(value, text, $selected){},
|
10774
|
+
onActionable : function(value, text, $selected){},
|
10748
10775
|
onSearch : function(searchTerm){},
|
10749
10776
|
|
10750
10777
|
onLabelSelect : function($selectedLabels){},
|
@@ -10807,7 +10834,8 @@ $.fn.dropdown.settings = {
|
|
10807
10834
|
icon : 'icon', // optional icon name
|
10808
10835
|
iconClass : 'iconClass', // optional individual class for icon (for example to use flag instead)
|
10809
10836
|
class : 'class', // optional individual class for item/header
|
10810
|
-
divider : 'divider' // optional divider append for group headers
|
10837
|
+
divider : 'divider', // optional divider append for group headers
|
10838
|
+
actionable : 'actionable' // optional actionable item
|
10811
10839
|
},
|
10812
10840
|
|
10813
10841
|
keys : {
|
@@ -10879,7 +10907,8 @@ $.fn.dropdown.settings = {
|
|
10879
10907
|
header : 'header',
|
10880
10908
|
divider : 'divider',
|
10881
10909
|
groupIcon : '',
|
10882
|
-
unfilterable : 'unfilterable'
|
10910
|
+
unfilterable : 'unfilterable',
|
10911
|
+
actionable : 'actionable'
|
10883
10912
|
}
|
10884
10913
|
|
10885
10914
|
};
|
@@ -10954,6 +10983,9 @@ $.fn.dropdown.settings.templates = {
|
|
10954
10983
|
maybeText = (option[fields.text])
|
10955
10984
|
? ' data-text="' + deQuote(option[fields.text],true) + '"'
|
10956
10985
|
: '',
|
10986
|
+
maybeActionable = (option[fields.actionable])
|
10987
|
+
? className.actionable+' '
|
10988
|
+
: '',
|
10957
10989
|
maybeDisabled = (option[fields.disabled])
|
10958
10990
|
? className.disabled+' '
|
10959
10991
|
: '',
|
@@ -10962,7 +10994,7 @@ $.fn.dropdown.settings.templates = {
|
|
10962
10994
|
: '',
|
10963
10995
|
hasDescription = (escape(option[fields.description] || '', preserveHTML) != '')
|
10964
10996
|
;
|
10965
|
-
html += '<div class="'+ maybeDisabled + maybeDescriptionVertical + (option[fields.class] ? deQuote(option[fields.class]) : className.item)+'" data-value="' + deQuote(option[fields.value],true) + '"' + maybeText + '>';
|
10997
|
+
html += '<div class="'+ maybeActionable + maybeDisabled + maybeDescriptionVertical + (option[fields.class] ? deQuote(option[fields.class]) : className.item)+'" data-value="' + deQuote(option[fields.value],true) + '"' + maybeText + '>';
|
10966
10998
|
if (isMenu) {
|
10967
10999
|
html += '<i class="'+ (itemType.indexOf('left') !== -1 ? 'left' : '') + ' dropdown icon"></i>';
|
10968
11000
|
}
|
@@ -11032,7 +11064,7 @@ $.fn.dropdown.settings.templates = {
|
|
11032
11064
|
})( jQuery, window, document );
|
11033
11065
|
|
11034
11066
|
/*!
|
11035
|
-
* # Fomantic-UI 2.9.0-beta.
|
11067
|
+
* # Fomantic-UI 2.9.0-beta.203 - Embed
|
11036
11068
|
* http://github.com/fomantic/Fomantic-UI/
|
11037
11069
|
*
|
11038
11070
|
*
|
@@ -11742,7 +11774,7 @@ $.fn.embed.settings = {
|
|
11742
11774
|
})( jQuery, window, document );
|
11743
11775
|
|
11744
11776
|
/*!
|
11745
|
-
* # Fomantic-UI 2.9.0-beta.
|
11777
|
+
* # Fomantic-UI 2.9.0-beta.203 - Modal
|
11746
11778
|
* http://github.com/fomantic/Fomantic-UI/
|
11747
11779
|
*
|
11748
11780
|
*
|
@@ -11809,7 +11841,8 @@ $.fn.modal = function(parameters) {
|
|
11809
11841
|
|
11810
11842
|
$module = $(this),
|
11811
11843
|
$context = $(settings.context),
|
11812
|
-
$
|
11844
|
+
$closeIcon = $module.find(selector.closeIcon),
|
11845
|
+
$inputs,
|
11813
11846
|
|
11814
11847
|
$allModals,
|
11815
11848
|
$otherModals,
|
@@ -11835,6 +11868,7 @@ $.fn.modal = function(parameters) {
|
|
11835
11868
|
module = {
|
11836
11869
|
|
11837
11870
|
initialize: function() {
|
11871
|
+
module.create.id();
|
11838
11872
|
if(!$module.hasClass('modal')) {
|
11839
11873
|
module.create.modal();
|
11840
11874
|
if(!$.isFunction(settings.onHidden)) {
|
@@ -11859,15 +11893,17 @@ $.fn.modal = function(parameters) {
|
|
11859
11893
|
$actions.empty();
|
11860
11894
|
}
|
11861
11895
|
settings.actions.forEach(function (el) {
|
11862
|
-
var icon = el[fields.icon] ? '<i class="' + module.helpers.deQuote(el[fields.icon]) + ' icon"></i>' : '',
|
11896
|
+
var icon = el[fields.icon] ? '<i '+(el[fields.text] ? 'aria-hidden="true"' : '')+' class="' + module.helpers.deQuote(el[fields.icon]) + ' icon"></i>' : '',
|
11863
11897
|
text = module.helpers.escape(el[fields.text] || '', settings.preserveHTML),
|
11864
11898
|
cls = module.helpers.deQuote(el[fields.class] || ''),
|
11865
11899
|
click = el[fields.click] && $.isFunction(el[fields.click]) ? el[fields.click] : function () {};
|
11866
11900
|
$actions.append($('<button/>', {
|
11867
11901
|
html: icon + text,
|
11902
|
+
'aria-label': $('<div>'+(el[fields.text] || el[fields.icon] || '')+'</div>').text(),
|
11868
11903
|
class: className.button + ' ' + cls,
|
11869
11904
|
click: function () {
|
11870
|
-
|
11905
|
+
var button = $(this);
|
11906
|
+
if (button.is(selector.approve) || button.is(selector.deny) || click.call(element, $module) === false) {
|
11871
11907
|
return;
|
11872
11908
|
}
|
11873
11909
|
module.hide();
|
@@ -11878,7 +11914,6 @@ $.fn.modal = function(parameters) {
|
|
11878
11914
|
module.cache = {};
|
11879
11915
|
module.verbose('Initializing dimmer', $context);
|
11880
11916
|
|
11881
|
-
module.create.id();
|
11882
11917
|
module.create.dimmer();
|
11883
11918
|
|
11884
11919
|
if ( settings.allowMultiple ) {
|
@@ -11888,11 +11923,9 @@ $.fn.modal = function(parameters) {
|
|
11888
11923
|
$module.addClass('top aligned');
|
11889
11924
|
}
|
11890
11925
|
module.refreshModals();
|
11891
|
-
|
11926
|
+
module.refreshInputs();
|
11892
11927
|
module.bind.events();
|
11893
|
-
|
11894
|
-
module.observeChanges();
|
11895
|
-
}
|
11928
|
+
module.observeChanges();
|
11896
11929
|
module.instantiate();
|
11897
11930
|
if(settings.autoShow){
|
11898
11931
|
module.show();
|
@@ -11909,16 +11942,20 @@ $.fn.modal = function(parameters) {
|
|
11909
11942
|
|
11910
11943
|
create: {
|
11911
11944
|
modal: function() {
|
11912
|
-
$module = $('<div/>', {class: className.modal});
|
11945
|
+
$module = $('<div/>', {class: className.modal, role: 'dialog', 'aria-modal': true});
|
11913
11946
|
if (settings.closeIcon) {
|
11914
|
-
$
|
11915
|
-
$module.append($
|
11947
|
+
$closeIcon = $('<i/>', {class: className.close, role: 'button', tabindex: 0, 'aria-label': settings.text.close})
|
11948
|
+
$module.append($closeIcon);
|
11916
11949
|
}
|
11917
11950
|
if (settings.title !== '') {
|
11918
|
-
|
11951
|
+
var titleId = '_' + module.get.id() + 'title';
|
11952
|
+
$module.attr('aria-labelledby', titleId);
|
11953
|
+
$('<div/>', {class: className.title, id: titleId}).appendTo($module);
|
11919
11954
|
}
|
11920
11955
|
if (settings.content !== '') {
|
11921
|
-
|
11956
|
+
var descId = '_' + module.get.id() + 'desc';
|
11957
|
+
$module.attr('aria-describedby', descId);
|
11958
|
+
$('<div/>', {class: className.content, id: descId}).appendTo($module);
|
11922
11959
|
}
|
11923
11960
|
if (module.has.configActions()) {
|
11924
11961
|
$('<div/>', {class: className.actions}).appendTo($module);
|
@@ -11954,8 +11991,8 @@ $.fn.modal = function(parameters) {
|
|
11954
11991
|
module.verbose('Creating unique id for element', id);
|
11955
11992
|
},
|
11956
11993
|
innerDimmer: function() {
|
11957
|
-
if ( $module.find(selector.dimmer).length
|
11958
|
-
$
|
11994
|
+
if ( $module.find(selector.dimmer).length === 0 ) {
|
11995
|
+
$('<div/>', {class: className.innerDimmer}).prependTo($module);
|
11959
11996
|
}
|
11960
11997
|
}
|
11961
11998
|
},
|
@@ -11971,15 +12008,21 @@ $.fn.modal = function(parameters) {
|
|
11971
12008
|
;
|
11972
12009
|
$window.off(elementEventNamespace);
|
11973
12010
|
$dimmer.off(elementEventNamespace);
|
11974
|
-
$
|
12011
|
+
$closeIcon.off(elementEventNamespace);
|
12012
|
+
if($inputs) {
|
12013
|
+
$inputs.off(elementEventNamespace);
|
12014
|
+
}
|
11975
12015
|
$context.dimmer('destroy');
|
11976
12016
|
},
|
11977
12017
|
|
11978
12018
|
observeChanges: function() {
|
11979
12019
|
if('MutationObserver' in window) {
|
11980
12020
|
observer = new MutationObserver(function(mutations) {
|
11981
|
-
|
11982
|
-
|
12021
|
+
if(settings.observeChanges) {
|
12022
|
+
module.debug('DOM tree modified, refreshing');
|
12023
|
+
module.refresh();
|
12024
|
+
}
|
12025
|
+
module.refreshInputs();
|
11983
12026
|
});
|
11984
12027
|
observer.observe(element, {
|
11985
12028
|
childList : true,
|
@@ -12004,6 +12047,23 @@ $.fn.modal = function(parameters) {
|
|
12004
12047
|
$allModals = $otherModals.add($module);
|
12005
12048
|
},
|
12006
12049
|
|
12050
|
+
refreshInputs: function(){
|
12051
|
+
if($inputs){
|
12052
|
+
$inputs
|
12053
|
+
.off('keydown' + elementEventNamespace)
|
12054
|
+
;
|
12055
|
+
}
|
12056
|
+
$inputs = $module.find('[tabindex], :input').filter(':visible').filter(function() {
|
12057
|
+
return $(this).closest('.disabled').length === 0;
|
12058
|
+
});
|
12059
|
+
$inputs.first()
|
12060
|
+
.on('keydown' + elementEventNamespace, module.event.inputKeyDown.first)
|
12061
|
+
;
|
12062
|
+
$inputs.last()
|
12063
|
+
.on('keydown' + elementEventNamespace, module.event.inputKeyDown.last)
|
12064
|
+
;
|
12065
|
+
},
|
12066
|
+
|
12007
12067
|
attachEvents: function(selector, event) {
|
12008
12068
|
var
|
12009
12069
|
$toggle = $(selector)
|
@@ -12032,6 +12092,9 @@ $.fn.modal = function(parameters) {
|
|
12032
12092
|
.on('click' + eventNamespace, selector.approve, module.event.approve)
|
12033
12093
|
.on('click' + eventNamespace, selector.deny, module.event.deny)
|
12034
12094
|
;
|
12095
|
+
$closeIcon
|
12096
|
+
.on('keyup' + elementEventNamespace, module.event.closeKeyUp)
|
12097
|
+
;
|
12035
12098
|
$window
|
12036
12099
|
.on('resize' + elementEventNamespace, module.event.resize)
|
12037
12100
|
;
|
@@ -12050,7 +12113,7 @@ $.fn.modal = function(parameters) {
|
|
12050
12113
|
|
12051
12114
|
get: {
|
12052
12115
|
id: function() {
|
12053
|
-
return
|
12116
|
+
return id;
|
12054
12117
|
},
|
12055
12118
|
element: function() {
|
12056
12119
|
return $module;
|
@@ -12089,10 +12152,38 @@ $.fn.modal = function(parameters) {
|
|
12089
12152
|
close: function() {
|
12090
12153
|
module.hide();
|
12091
12154
|
},
|
12155
|
+
closeKeyUp: function(event){
|
12156
|
+
var
|
12157
|
+
keyCode = event.which
|
12158
|
+
;
|
12159
|
+
if ((keyCode === settings.keys.enter || keyCode === settings.keys.space) && $module.hasClass(className.front)) {
|
12160
|
+
module.hide();
|
12161
|
+
}
|
12162
|
+
},
|
12163
|
+
inputKeyDown: {
|
12164
|
+
first: function(event) {
|
12165
|
+
var
|
12166
|
+
keyCode = event.which
|
12167
|
+
;
|
12168
|
+
if (keyCode === settings.keys.tab && event.shiftKey) {
|
12169
|
+
$inputs.last().focus();
|
12170
|
+
event.preventDefault();
|
12171
|
+
}
|
12172
|
+
},
|
12173
|
+
last: function(event) {
|
12174
|
+
var
|
12175
|
+
keyCode = event.which
|
12176
|
+
;
|
12177
|
+
if (keyCode === settings.keys.tab && !event.shiftKey) {
|
12178
|
+
$inputs.first().focus();
|
12179
|
+
event.preventDefault();
|
12180
|
+
}
|
12181
|
+
}
|
12182
|
+
},
|
12092
12183
|
mousedown: function(event) {
|
12093
12184
|
var
|
12094
12185
|
$target = $(event.target),
|
12095
|
-
isRtl = module.is.rtl()
|
12186
|
+
isRtl = module.is.rtl()
|
12096
12187
|
;
|
12097
12188
|
initialMouseDownInModal = ($target.closest(selector.modal).length > 0);
|
12098
12189
|
if(initialMouseDownInModal) {
|
@@ -12140,10 +12231,9 @@ $.fn.modal = function(parameters) {
|
|
12140
12231
|
},
|
12141
12232
|
keyboard: function(event) {
|
12142
12233
|
var
|
12143
|
-
keyCode = event.which
|
12144
|
-
escapeKey = 27
|
12234
|
+
keyCode = event.which
|
12145
12235
|
;
|
12146
|
-
if(keyCode
|
12236
|
+
if(keyCode === settings.keys.escape) {
|
12147
12237
|
if(settings.closable) {
|
12148
12238
|
module.debug('Escape key pressed hiding modal');
|
12149
12239
|
if ( $module.hasClass(className.front) ) {
|
@@ -12458,7 +12548,7 @@ $.fn.modal = function(parameters) {
|
|
12458
12548
|
$module
|
12459
12549
|
.off('mousedown' + elementEventNamespace)
|
12460
12550
|
;
|
12461
|
-
}
|
12551
|
+
}
|
12462
12552
|
$dimmer
|
12463
12553
|
.off('mousedown' + elementEventNamespace)
|
12464
12554
|
;
|
@@ -12643,13 +12733,10 @@ $.fn.modal = function(parameters) {
|
|
12643
12733
|
set: {
|
12644
12734
|
autofocus: function() {
|
12645
12735
|
var
|
12646
|
-
$inputs = $module.find('[tabindex], :input').filter(':visible').filter(function() {
|
12647
|
-
return $(this).closest('.disabled').length === 0;
|
12648
|
-
}),
|
12649
12736
|
$autofocus = $inputs.filter('[autofocus]'),
|
12650
12737
|
$input = ($autofocus.length > 0)
|
12651
12738
|
? $autofocus.first()
|
12652
|
-
: $inputs.first()
|
12739
|
+
: ($inputs.length > 1 ? $inputs.filter(':not(i.close)') : $inputs).first()
|
12653
12740
|
;
|
12654
12741
|
if($input.length > 0) {
|
12655
12742
|
$input.focus();
|
@@ -12731,7 +12818,7 @@ $.fn.modal = function(parameters) {
|
|
12731
12818
|
? $(document).scrollTop() + settings.padding
|
12732
12819
|
: $(document).scrollTop() + (module.cache.contextHeight - module.cache.height - settings.padding),
|
12733
12820
|
marginLeft: -(module.cache.width / 2)
|
12734
|
-
})
|
12821
|
+
})
|
12735
12822
|
;
|
12736
12823
|
} else {
|
12737
12824
|
$module
|
@@ -12740,7 +12827,7 @@ $.fn.modal = function(parameters) {
|
|
12740
12827
|
? -(module.cache.height / 2)
|
12741
12828
|
: settings.padding / 2,
|
12742
12829
|
marginLeft: -(module.cache.width / 2)
|
12743
|
-
})
|
12830
|
+
})
|
12744
12831
|
;
|
12745
12832
|
}
|
12746
12833
|
module.verbose('Setting modal offset for legacy mode');
|
@@ -13066,11 +13153,19 @@ $.fn.modal.settings = {
|
|
13066
13153
|
// called after deny selector match
|
13067
13154
|
onDeny : function(){ return true; },
|
13068
13155
|
|
13156
|
+
keys : {
|
13157
|
+
space : 32,
|
13158
|
+
enter : 13,
|
13159
|
+
escape : 27,
|
13160
|
+
tab : 9,
|
13161
|
+
},
|
13162
|
+
|
13069
13163
|
selector : {
|
13070
13164
|
title : '> .header',
|
13071
13165
|
content : '> .content',
|
13072
13166
|
actions : '> .actions',
|
13073
13167
|
close : '> .close',
|
13168
|
+
closeIcon: '> .close',
|
13074
13169
|
approve : '.actions .positive, .actions .approve, .actions .ok',
|
13075
13170
|
deny : '.actions .negative, .actions .deny, .actions .cancel',
|
13076
13171
|
modal : '.ui.modal',
|
@@ -13102,11 +13197,13 @@ $.fn.modal.settings = {
|
|
13102
13197
|
template : 'ui tiny modal',
|
13103
13198
|
ok : 'positive',
|
13104
13199
|
cancel : 'negative',
|
13105
|
-
prompt : 'ui fluid input'
|
13200
|
+
prompt : 'ui fluid input',
|
13201
|
+
innerDimmer: 'ui inverted dimmer'
|
13106
13202
|
},
|
13107
13203
|
text: {
|
13108
13204
|
ok : 'Ok',
|
13109
|
-
cancel: 'Cancel'
|
13205
|
+
cancel: 'Cancel',
|
13206
|
+
close : 'Close'
|
13110
13207
|
}
|
13111
13208
|
};
|
13112
13209
|
|
@@ -13132,33 +13229,39 @@ $.fn.modal.settings.templates = {
|
|
13132
13229
|
},
|
13133
13230
|
alert: function () {
|
13134
13231
|
var settings = this.get.settings(),
|
13135
|
-
args = settings.templates.getArguments(arguments)
|
13232
|
+
args = settings.templates.getArguments(arguments),
|
13233
|
+
approveFn = args.handler
|
13136
13234
|
;
|
13137
13235
|
return {
|
13138
13236
|
title : args.title,
|
13139
13237
|
content: args.content,
|
13238
|
+
onApprove: approveFn,
|
13140
13239
|
actions: [{
|
13141
13240
|
text : settings.text.ok,
|
13142
13241
|
class: settings.className.ok,
|
13143
|
-
click:
|
13242
|
+
click: approveFn
|
13144
13243
|
}]
|
13145
13244
|
}
|
13146
13245
|
},
|
13147
13246
|
confirm: function () {
|
13148
13247
|
var settings = this.get.settings(),
|
13149
|
-
args = settings.templates.getArguments(arguments)
|
13248
|
+
args = settings.templates.getArguments(arguments),
|
13249
|
+
approveFn = function(){args.handler(true)},
|
13250
|
+
denyFn = function(){args.handler(false)}
|
13150
13251
|
;
|
13151
13252
|
return {
|
13152
13253
|
title : args.title,
|
13153
13254
|
content: args.content,
|
13255
|
+
onApprove: approveFn,
|
13256
|
+
onDeny: denyFn,
|
13154
13257
|
actions: [{
|
13155
13258
|
text : settings.text.ok,
|
13156
13259
|
class: settings.className.ok,
|
13157
|
-
click:
|
13260
|
+
click: approveFn
|
13158
13261
|
},{
|
13159
13262
|
text: settings.text.cancel,
|
13160
13263
|
class: settings.className.cancel,
|
13161
|
-
click:
|
13264
|
+
click: denyFn
|
13162
13265
|
}]
|
13163
13266
|
}
|
13164
13267
|
},
|
@@ -13166,7 +13269,14 @@ $.fn.modal.settings.templates = {
|
|
13166
13269
|
var $this = this,
|
13167
13270
|
settings = this.get.settings(),
|
13168
13271
|
args = settings.templates.getArguments(arguments),
|
13169
|
-
input = $($.parseHTML(args.content)).filter('.ui.input')
|
13272
|
+
input = $($.parseHTML(args.content)).filter('.ui.input'),
|
13273
|
+
approveFn = function(){
|
13274
|
+
var settings = $this.get.settings(),
|
13275
|
+
inputField = $this.get.element().find(settings.selector.prompt)[0]
|
13276
|
+
;
|
13277
|
+
args.handler($(inputField).val());
|
13278
|
+
},
|
13279
|
+
denyFn = function(){args.handler(null)}
|
13170
13280
|
;
|
13171
13281
|
if (input.length === 0) {
|
13172
13282
|
args.content += '<p><div class="'+settings.className.prompt+'"><input placeholder="'+this.helpers.deQuote(args.placeholder || '')+'" type="text" value="'+this.helpers.deQuote(args.defaultValue || '')+'"></div></p>';
|
@@ -13174,19 +13284,16 @@ $.fn.modal.settings.templates = {
|
|
13174
13284
|
return {
|
13175
13285
|
title : args.title,
|
13176
13286
|
content: args.content,
|
13287
|
+
onApprove: approveFn,
|
13288
|
+
onDeny: denyFn,
|
13177
13289
|
actions: [{
|
13178
13290
|
text: settings.text.ok,
|
13179
13291
|
class: settings.className.ok,
|
13180
|
-
click:
|
13181
|
-
var settings = $this.get.settings(),
|
13182
|
-
inputField = $this.get.element().find(settings.selector.prompt)[0]
|
13183
|
-
;
|
13184
|
-
args.handler($(inputField).val());
|
13185
|
-
}
|
13292
|
+
click: approveFn
|
13186
13293
|
},{
|
13187
13294
|
text: settings.text.cancel,
|
13188
13295
|
class: settings.className.cancel,
|
13189
|
-
click:
|
13296
|
+
click: denyFn
|
13190
13297
|
}]
|
13191
13298
|
}
|
13192
13299
|
}
|
@@ -13195,7 +13302,7 @@ $.fn.modal.settings.templates = {
|
|
13195
13302
|
})( jQuery, window, document );
|
13196
13303
|
|
13197
13304
|
/*!
|
13198
|
-
* # Fomantic-UI 2.9.0-beta.
|
13305
|
+
* # Fomantic-UI 2.9.0-beta.203 - Nag
|
13199
13306
|
* http://github.com/fomantic/Fomantic-UI/
|
13200
13307
|
*
|
13201
13308
|
*
|
@@ -13754,7 +13861,7 @@ $.extend( $.easing, {
|
|
13754
13861
|
})( jQuery, window, document );
|
13755
13862
|
|
13756
13863
|
/*!
|
13757
|
-
* # Fomantic-UI 2.9.0-beta.
|
13864
|
+
* # Fomantic-UI 2.9.0-beta.203 - Popup
|
13758
13865
|
* http://github.com/fomantic/Fomantic-UI/
|
13759
13866
|
*
|
13760
13867
|
*
|
@@ -15296,7 +15403,7 @@ $.fn.popup.settings = {
|
|
15296
15403
|
})( jQuery, window, document );
|
15297
15404
|
|
15298
15405
|
/*!
|
15299
|
-
* # Fomantic-UI 2.9.0-beta.
|
15406
|
+
* # Fomantic-UI 2.9.0-beta.203 - Progress
|
15300
15407
|
* http://github.com/fomantic/Fomantic-UI/
|
15301
15408
|
*
|
15302
15409
|
*
|
@@ -15904,6 +16011,9 @@ $.fn.progress = function(parameters) {
|
|
15904
16011
|
}
|
15905
16012
|
else {
|
15906
16013
|
module.remove.active();
|
16014
|
+
module.remove.warning();
|
16015
|
+
module.remove.error();
|
16016
|
+
module.remove.success();
|
15907
16017
|
module.set.label(settings.text.active);
|
15908
16018
|
}
|
15909
16019
|
},
|
@@ -16330,7 +16440,7 @@ $.fn.progress.settings = {
|
|
16330
16440
|
})( jQuery, window, document );
|
16331
16441
|
|
16332
16442
|
/*!
|
16333
|
-
* # Fomantic-UI 2.9.0-beta.
|
16443
|
+
* # Fomantic-UI 2.9.0-beta.203 - Slider
|
16334
16444
|
* http://github.com/fomantic/Fomantic-UI/
|
16335
16445
|
*
|
16336
16446
|
*
|
@@ -17669,7 +17779,7 @@ $.fn.slider.settings = {
|
|
17669
17779
|
})( jQuery, window, document );
|
17670
17780
|
|
17671
17781
|
/*!
|
17672
|
-
* # Fomantic-UI 2.9.0-beta.
|
17782
|
+
* # Fomantic-UI 2.9.0-beta.203 - Rating
|
17673
17783
|
* http://github.com/fomantic/Fomantic-UI/
|
17674
17784
|
*
|
17675
17785
|
*
|
@@ -18224,7 +18334,7 @@ $.fn.rating.settings = {
|
|
18224
18334
|
})( jQuery, window, document );
|
18225
18335
|
|
18226
18336
|
/*!
|
18227
|
-
* # Fomantic-UI 2.9.0-beta.
|
18337
|
+
* # Fomantic-UI 2.9.0-beta.203 - Search
|
18228
18338
|
* http://github.com/fomantic/Fomantic-UI/
|
18229
18339
|
*
|
18230
18340
|
*
|
@@ -19792,7 +19902,7 @@ $.fn.search.settings = {
|
|
19792
19902
|
})( jQuery, window, document );
|
19793
19903
|
|
19794
19904
|
/*!
|
19795
|
-
* # Fomantic-UI 2.9.0-beta.
|
19905
|
+
* # Fomantic-UI 2.9.0-beta.203 - Shape
|
19796
19906
|
* http://github.com/fomantic/Fomantic-UI/
|
19797
19907
|
*
|
19798
19908
|
*
|
@@ -20641,7 +20751,7 @@ $.fn.shape.settings = {
|
|
20641
20751
|
})( jQuery, window, document );
|
20642
20752
|
|
20643
20753
|
/*!
|
20644
|
-
* # Fomantic-UI 2.9.0-beta.
|
20754
|
+
* # Fomantic-UI 2.9.0-beta.203 - Sidebar
|
20645
20755
|
* http://github.com/fomantic/Fomantic-UI/
|
20646
20756
|
*
|
20647
20757
|
*
|
@@ -21678,7 +21788,7 @@ $.fn.sidebar.settings = {
|
|
21678
21788
|
})( jQuery, window, document );
|
21679
21789
|
|
21680
21790
|
/*!
|
21681
|
-
* # Fomantic-UI 2.9.0-beta.
|
21791
|
+
* # Fomantic-UI 2.9.0-beta.203 - Sticky
|
21682
21792
|
* http://github.com/fomantic/Fomantic-UI/
|
21683
21793
|
*
|
21684
21794
|
*
|
@@ -22636,7 +22746,7 @@ $.fn.sticky.settings = {
|
|
22636
22746
|
})( jQuery, window, document );
|
22637
22747
|
|
22638
22748
|
/*!
|
22639
|
-
* # Fomantic-UI 2.9.0-beta.
|
22749
|
+
* # Fomantic-UI 2.9.0-beta.203 - Tab
|
22640
22750
|
* http://github.com/fomantic/Fomantic-UI/
|
22641
22751
|
*
|
22642
22752
|
*
|
@@ -22737,10 +22847,18 @@ $.fn.tab = function(parameters) {
|
|
22737
22847
|
initializedHistory = true;
|
22738
22848
|
}
|
22739
22849
|
|
22740
|
-
|
22741
|
-
|
22742
|
-
|
22743
|
-
|
22850
|
+
var activeTab = module.determine.activeTab();
|
22851
|
+
if(settings.autoTabActivation && instance === undefined && activeTab == null) {
|
22852
|
+
activeTab = settings.autoTabActivation === true ? module.get.initialPath() : settings.autoTabActivation;
|
22853
|
+
module.debug('No active tab detected, setting tab active', activeTab);
|
22854
|
+
module.changeTab(activeTab);
|
22855
|
+
}
|
22856
|
+
if(activeTab != null && settings.history) {
|
22857
|
+
var autoUpdate = $.address.autoUpdate();
|
22858
|
+
$.address.autoUpdate(false);
|
22859
|
+
$.address.value(activeTab);
|
22860
|
+
$.address.autoUpdate(autoUpdate);
|
22861
|
+
}
|
22744
22862
|
|
22745
22863
|
module.instantiate();
|
22746
22864
|
},
|
@@ -22840,6 +22958,7 @@ $.fn.tab = function(parameters) {
|
|
22840
22958
|
.history(true)
|
22841
22959
|
.state(settings.path)
|
22842
22960
|
;
|
22961
|
+
$(window).trigger('popstate');
|
22843
22962
|
}
|
22844
22963
|
else {
|
22845
22964
|
module.error(error.path);
|
@@ -23007,6 +23126,10 @@ $.fn.tab = function(parameters) {
|
|
23007
23126
|
module.verbose('Tab parameters found', nextPathArray);
|
23008
23127
|
}
|
23009
23128
|
}
|
23129
|
+
if (settings.onBeforeChange.call(element, currentPath) === false) {
|
23130
|
+
module.debug('onBeforeChange returned false, cancelling tab change', $tab);
|
23131
|
+
return false;
|
23132
|
+
}
|
23010
23133
|
if(isLastTab && remoteContent) {
|
23011
23134
|
if(!shouldIgnoreLoad) {
|
23012
23135
|
module.activate.navigation(currentPath);
|
@@ -23043,6 +23166,10 @@ $.fn.tab = function(parameters) {
|
|
23043
23166
|
// if anchor exists use parent tab
|
23044
23167
|
if($anchor && $anchor.length > 0 && currentPath) {
|
23045
23168
|
module.debug('Anchor link used, opening parent tab', $tab, $anchor);
|
23169
|
+
if (settings.onBeforeChange.call(element, currentPath) === false) {
|
23170
|
+
module.debug('onBeforeChange returned false, cancelling tab change', $tab);
|
23171
|
+
return false;
|
23172
|
+
}
|
23046
23173
|
if( !$tab.hasClass(className.active) ) {
|
23047
23174
|
setTimeout(function() {
|
23048
23175
|
module.scrollTo($anchor);
|
@@ -23596,6 +23723,7 @@ $.fn.tab.settings = {
|
|
23596
23723
|
onLoad : function(tabPath, parameterArray, historyEvent) {}, // called on every load
|
23597
23724
|
onVisible : function(tabPath, parameterArray, historyEvent) {}, // called every time tab visible
|
23598
23725
|
onRequest : function(tabPath, parameterArray, historyEvent) {}, // called ever time a tab beings loading remote content
|
23726
|
+
onBeforeChange: function(tabPath) {}, // called before a tab is about to be changed. Returning false will cancel the tab change
|
23599
23727
|
|
23600
23728
|
templates : {
|
23601
23729
|
determineTitle: function(tabArray) {} // returns page title for path
|
@@ -23638,7 +23766,7 @@ $.fn.tab.settings = {
|
|
23638
23766
|
})( jQuery, window, document );
|
23639
23767
|
|
23640
23768
|
/*!
|
23641
|
-
* # Fomantic-UI 2.9.0-beta.
|
23769
|
+
* # Fomantic-UI 2.9.0-beta.203 - Toast
|
23642
23770
|
* http://github.com/fomantic/Fomantic-UI/
|
23643
23771
|
*
|
23644
23772
|
*
|
@@ -23708,12 +23836,14 @@ $.fn.toast = function(parameters) {
|
|
23708
23836
|
element = this,
|
23709
23837
|
instance = isToastComponent ? $module.data(moduleNamespace) : undefined,
|
23710
23838
|
|
23839
|
+
id,
|
23711
23840
|
module
|
23712
23841
|
;
|
23713
23842
|
module = {
|
23714
23843
|
|
23715
23844
|
initialize: function() {
|
23716
23845
|
module.verbose('Initializing element');
|
23846
|
+
module.create.id();
|
23717
23847
|
if (!module.has.container()) {
|
23718
23848
|
module.create.container();
|
23719
23849
|
}
|
@@ -23763,17 +23893,22 @@ $.fn.toast = function(parameters) {
|
|
23763
23893
|
},
|
23764
23894
|
|
23765
23895
|
show: function(callback) {
|
23766
|
-
callback = callback || function(){};
|
23767
|
-
module.debug('Showing toast');
|
23768
23896
|
if(settings.onShow.call($toastBox, element) === false) {
|
23769
23897
|
module.debug('onShow callback returned false, cancelling toast animation');
|
23770
23898
|
return;
|
23771
23899
|
}
|
23900
|
+
callback = callback || function(){};
|
23901
|
+
module.debug('Showing toast');
|
23772
23902
|
module.animate.show(callback);
|
23773
23903
|
},
|
23774
23904
|
|
23775
23905
|
close: function(callback) {
|
23906
|
+
if(settings.onHide.call($toastBox, element) === false) {
|
23907
|
+
module.debug('onHide callback returned false, cancelling toast animation');
|
23908
|
+
return;
|
23909
|
+
}
|
23776
23910
|
callback = callback || function(){};
|
23911
|
+
module.debug('Closing toast');
|
23777
23912
|
module.remove.visible();
|
23778
23913
|
module.unbind.events();
|
23779
23914
|
module.animate.close(callback);
|
@@ -23785,12 +23920,16 @@ $.fn.toast = function(parameters) {
|
|
23785
23920
|
module.verbose('Creating container');
|
23786
23921
|
$context.append($('<div/>',{class: settings.position + ' ' + className.container + ' ' +(settings.horizontal ? className.horizontal : '')}));
|
23787
23922
|
},
|
23923
|
+
id: function() {
|
23924
|
+
id = (Math.random().toString(16) + '000000000').substr(2, 8);
|
23925
|
+
module.verbose('Creating unique id for element', id);
|
23926
|
+
},
|
23788
23927
|
toast: function() {
|
23789
23928
|
$toastBox = $('<div/>', {class: className.box});
|
23790
23929
|
var iconClass = module.get.iconClass();
|
23791
23930
|
if (!isToastComponent) {
|
23792
23931
|
module.verbose('Creating toast');
|
23793
|
-
$toast = $('<div/>');
|
23932
|
+
$toast = $('<div/>', {role: 'alert'});
|
23794
23933
|
var $content = $('<div/>', {class: className.content});
|
23795
23934
|
if (iconClass !== '') {
|
23796
23935
|
$toast.append($('<i/>', {class: iconClass + ' ' + className.icon}));
|
@@ -23803,13 +23942,21 @@ $.fn.toast = function(parameters) {
|
|
23803
23942
|
}));
|
23804
23943
|
}
|
23805
23944
|
if (settings.title !== '') {
|
23945
|
+
var titleId = '_' + module.get.id() + 'title';
|
23946
|
+
$toast.attr('aria-labelledby', titleId);
|
23806
23947
|
$content.append($('<div/>', {
|
23807
23948
|
class: className.title,
|
23808
|
-
|
23949
|
+
id: titleId,
|
23950
|
+
html: module.helpers.escape(settings.title, settings.preserveHTML)
|
23809
23951
|
}));
|
23810
23952
|
}
|
23811
|
-
|
23812
|
-
$
|
23953
|
+
var descId = '_' + module.get.id() + 'desc';
|
23954
|
+
$toast.attr('aria-describedby', descId);
|
23955
|
+
$content.append($('<div/>', {
|
23956
|
+
class: className.message,
|
23957
|
+
id: descId,
|
23958
|
+
html: module.helpers.escape(settings.message, settings.preserveHTML)
|
23959
|
+
}));
|
23813
23960
|
|
23814
23961
|
$toast
|
23815
23962
|
.addClass(settings.class + ' ' + className.toast)
|
@@ -23817,7 +23964,7 @@ $.fn.toast = function(parameters) {
|
|
23817
23964
|
;
|
23818
23965
|
$toast.css('opacity', settings.opacity);
|
23819
23966
|
if (settings.closeIcon) {
|
23820
|
-
$close = $('<i/>', {class: className.close + ' ' + (typeof settings.closeIcon === 'string' ? settings.closeIcon : '')});
|
23967
|
+
$close = $('<i/>', {class: className.close + ' ' + (typeof settings.closeIcon === 'string' ? settings.closeIcon : ''), role: 'button', tabindex: 0, 'aria-label': settings.text.close});
|
23821
23968
|
if($close.hasClass(className.left)) {
|
23822
23969
|
$toast.prepend($close);
|
23823
23970
|
} else {
|
@@ -23860,15 +24007,17 @@ $.fn.toast = function(parameters) {
|
|
23860
24007
|
}
|
23861
24008
|
}
|
23862
24009
|
settings.actions.forEach(function (el) {
|
23863
|
-
var icon = el[fields.icon] ? '<i class="' + module.helpers.deQuote(el[fields.icon]) + ' icon"></i>' : '',
|
24010
|
+
var icon = el[fields.icon] ? '<i '+(el[fields.text] ? 'aria-hidden="true"' : '')+' class="' + module.helpers.deQuote(el[fields.icon]) + ' icon"></i>' : '',
|
23864
24011
|
text = module.helpers.escape(el[fields.text] || '', settings.preserveHTML),
|
23865
24012
|
cls = module.helpers.deQuote(el[fields.class] || ''),
|
23866
24013
|
click = el[fields.click] && $.isFunction(el[fields.click]) ? el[fields.click] : function () {};
|
23867
24014
|
$actions.append($('<button/>', {
|
23868
24015
|
html: icon + text,
|
24016
|
+
'aria-label': $('<div>'+(el[fields.text] || el[fields.icon] || '')+'</div>').text(),
|
23869
24017
|
class: className.button + ' ' + cls,
|
23870
24018
|
click: function () {
|
23871
|
-
|
24019
|
+
var button = $(this);
|
24020
|
+
if (button.is(selector.approve) || button.is(selector.deny) || click.call(element, $module) === false) {
|
23872
24021
|
return;
|
23873
24022
|
}
|
23874
24023
|
module.close();
|
@@ -23968,13 +24117,12 @@ $.fn.toast = function(parameters) {
|
|
23968
24117
|
bind: {
|
23969
24118
|
events: function() {
|
23970
24119
|
module.debug('Binding events to toast');
|
23971
|
-
if(settings.
|
23972
|
-
(
|
23973
|
-
.on('click' + eventNamespace, module.event.click)
|
23974
|
-
;
|
24120
|
+
if(settings.closeIcon) {
|
24121
|
+
$close.on('click' + eventNamespace, module.event.close);
|
23975
24122
|
}
|
24123
|
+
$toast.on('click' + eventNamespace, module.event.click);
|
23976
24124
|
if($animationObject) {
|
23977
|
-
$animationObject.on('animationend' + eventNamespace, module.close);
|
24125
|
+
$animationObject.on('animationend' + eventNamespace, module.event.close);
|
23978
24126
|
}
|
23979
24127
|
$toastBox
|
23980
24128
|
.on('click' + eventNamespace, selector.approve, module.event.approve)
|
@@ -23986,11 +24134,10 @@ $.fn.toast = function(parameters) {
|
|
23986
24134
|
unbind: {
|
23987
24135
|
events: function() {
|
23988
24136
|
module.debug('Unbinding events to toast');
|
23989
|
-
if(settings.
|
23990
|
-
|
23991
|
-
.off('click' + eventNamespace)
|
23992
|
-
;
|
24137
|
+
if(settings.closeIcon) {
|
24138
|
+
$close.off('click' + eventNamespace);
|
23993
24139
|
}
|
24140
|
+
$toast.off('click' + eventNamespace);
|
23994
24141
|
if($animationObject) {
|
23995
24142
|
$animationObject.off('animationend' + eventNamespace);
|
23996
24143
|
}
|
@@ -24022,11 +24169,6 @@ $.fn.toast = function(parameters) {
|
|
24022
24169
|
},
|
24023
24170
|
close: function(callback) {
|
24024
24171
|
callback = $.isFunction(callback) ? callback : function(){};
|
24025
|
-
module.debug('Closing toast');
|
24026
|
-
if(settings.onHide.call($toastBox, element) === false) {
|
24027
|
-
module.debug('onHide callback returned false, cancelling toast animation');
|
24028
|
-
return;
|
24029
|
-
}
|
24030
24172
|
if(settings.transition && $.fn.transition !== undefined && $module.transition('is supported')) {
|
24031
24173
|
$toastBox
|
24032
24174
|
.transition({
|
@@ -24082,7 +24224,7 @@ $.fn.toast = function(parameters) {
|
|
24082
24224
|
has: {
|
24083
24225
|
container: function() {
|
24084
24226
|
module.verbose('Determining if there is already a container');
|
24085
|
-
return ($context.find(module.helpers.toClass(settings.position) + selector.container + (settings.horizontal ? module.helpers.toClass(className.horizontal) : '')).length > 0);
|
24227
|
+
return ($context.find(module.helpers.toClass(settings.position) + selector.container + (settings.horizontal ? module.helpers.toClass(className.horizontal) : ':not('+module.helpers.toClass(className.horizontal)+')')).length > 0);
|
24086
24228
|
},
|
24087
24229
|
toast: function(){
|
24088
24230
|
return !!module.get.toast();
|
@@ -24096,8 +24238,11 @@ $.fn.toast = function(parameters) {
|
|
24096
24238
|
},
|
24097
24239
|
|
24098
24240
|
get: {
|
24241
|
+
id: function() {
|
24242
|
+
return id;
|
24243
|
+
},
|
24099
24244
|
container: function() {
|
24100
|
-
return ($context.find(module.helpers.toClass(settings.position) + selector.container)[0]);
|
24245
|
+
return ($context.find(module.helpers.toClass(settings.position) + selector.container + (settings.horizontal ? module.helpers.toClass(className.horizontal) : ':not('+module.helpers.toClass(className.horizontal)+')'))[0]);
|
24101
24246
|
},
|
24102
24247
|
toastBox: function() {
|
24103
24248
|
return $toastBox || null;
|
@@ -24129,9 +24274,15 @@ $.fn.toast = function(parameters) {
|
|
24129
24274
|
},
|
24130
24275
|
|
24131
24276
|
event: {
|
24277
|
+
close: function(){
|
24278
|
+
module.close();
|
24279
|
+
},
|
24132
24280
|
click: function(event) {
|
24133
|
-
if($(event.target).closest(
|
24134
|
-
settings.onClick.call($toastBox, element)
|
24281
|
+
if($(event.target).closest(selector.clickable).length === 0) {
|
24282
|
+
if(settings.onClick.call($toastBox, element) === false || !settings.closeOnClick) {
|
24283
|
+
module.verbose('Click callback returned false or close denied by setting cancelling close');
|
24284
|
+
return;
|
24285
|
+
}
|
24135
24286
|
module.close();
|
24136
24287
|
}
|
24137
24288
|
},
|
@@ -24472,6 +24623,10 @@ $.fn.toast.settings = {
|
|
24472
24623
|
unclickable : 'unclickable'
|
24473
24624
|
},
|
24474
24625
|
|
24626
|
+
text: {
|
24627
|
+
close : 'Close'
|
24628
|
+
},
|
24629
|
+
|
24475
24630
|
icons : {
|
24476
24631
|
info : 'info',
|
24477
24632
|
success : 'checkmark',
|
@@ -24488,6 +24643,7 @@ $.fn.toast.settings = {
|
|
24488
24643
|
image : '> img.image, > .image > img',
|
24489
24644
|
icon : '> i.icon',
|
24490
24645
|
input : 'input:not([type="hidden"]), textarea, select, button, .ui.button, ui.dropdown',
|
24646
|
+
clickable : 'a, details, .ui.accordion',
|
24491
24647
|
approve : '.actions .positive, .actions .approve, .actions .ok',
|
24492
24648
|
deny : '.actions .negative, .actions .deny, .actions .cancel'
|
24493
24649
|
},
|
@@ -24531,7 +24687,7 @@ $.extend( $.easing, {
|
|
24531
24687
|
})( jQuery, window, document );
|
24532
24688
|
|
24533
24689
|
/*!
|
24534
|
-
* # Fomantic-UI 2.9.0-beta.
|
24690
|
+
* # Fomantic-UI 2.9.0-beta.203 - Transition
|
24535
24691
|
* http://github.com/fomantic/Fomantic-UI/
|
24536
24692
|
*
|
24537
24693
|
*
|
@@ -25641,7 +25797,7 @@ $.fn.transition.settings = {
|
|
25641
25797
|
})( jQuery, window, document );
|
25642
25798
|
|
25643
25799
|
/*!
|
25644
|
-
* # Fomantic-UI 2.9.0-beta.
|
25800
|
+
* # Fomantic-UI 2.9.0-beta.203 - API
|
25645
25801
|
* http://github.com/fomantic/Fomantic-UI/
|
25646
25802
|
*
|
25647
25803
|
*
|
@@ -25716,6 +25872,7 @@ $.api = $.fn.api = function(parameters) {
|
|
25716
25872
|
url,
|
25717
25873
|
data,
|
25718
25874
|
requestStartTime,
|
25875
|
+
originalData,
|
25719
25876
|
|
25720
25877
|
// standard module
|
25721
25878
|
element = this,
|
@@ -25728,6 +25885,7 @@ $.api = $.fn.api = function(parameters) {
|
|
25728
25885
|
|
25729
25886
|
initialize: function() {
|
25730
25887
|
if(!methodInvoked) {
|
25888
|
+
originalData = settings.data;
|
25731
25889
|
module.bind.events();
|
25732
25890
|
}
|
25733
25891
|
module.instantiate();
|
@@ -25790,8 +25948,8 @@ $.api = $.fn.api = function(parameters) {
|
|
25790
25948
|
module.error(error.noStorage);
|
25791
25949
|
return;
|
25792
25950
|
}
|
25793
|
-
response = sessionStorage.getItem(url);
|
25794
|
-
module.debug('Using cached response', url, response);
|
25951
|
+
response = sessionStorage.getItem(url + module.get.normalizedData());
|
25952
|
+
module.debug('Using cached response', url, settings.data, response);
|
25795
25953
|
response = module.decode.json(response);
|
25796
25954
|
return response;
|
25797
25955
|
}
|
@@ -25809,8 +25967,8 @@ $.api = $.fn.api = function(parameters) {
|
|
25809
25967
|
if( $.isPlainObject(response) ) {
|
25810
25968
|
response = JSON.stringify(response);
|
25811
25969
|
}
|
25812
|
-
sessionStorage.setItem(url, response);
|
25813
|
-
module.verbose('Storing cached response for url', url, response);
|
25970
|
+
sessionStorage.setItem(url + module.get.normalizedData(), response);
|
25971
|
+
module.verbose('Storing cached response for url', url, settings.data, response);
|
25814
25972
|
}
|
25815
25973
|
},
|
25816
25974
|
|
@@ -25839,7 +25997,7 @@ $.api = $.fn.api = function(parameters) {
|
|
25839
25997
|
|
25840
25998
|
// Add form content
|
25841
25999
|
if(settings.serializeForm) {
|
25842
|
-
settings.data = module.add.formData(settings.data);
|
26000
|
+
settings.data = module.add.formData(originalData || settings.data);
|
25843
26001
|
}
|
25844
26002
|
|
25845
26003
|
// call beforesend and get any settings changes
|
@@ -25976,10 +26134,6 @@ $.api = $.fn.api = function(parameters) {
|
|
25976
26134
|
cancelled: function() {
|
25977
26135
|
return (module.cancelled || false);
|
25978
26136
|
},
|
25979
|
-
succesful: function() {
|
25980
|
-
module.verbose('This behavior will be deleted due to typo. Use "was successful" instead.');
|
25981
|
-
return module.was.successful();
|
25982
|
-
},
|
25983
26137
|
successful: function() {
|
25984
26138
|
return (module.request && module.request.state() == 'resolved');
|
25985
26139
|
},
|
@@ -26071,25 +26225,29 @@ $.api = $.fn.api = function(parameters) {
|
|
26071
26225
|
},
|
26072
26226
|
formData: function(data) {
|
26073
26227
|
var
|
26074
|
-
|
26075
|
-
formData = (canSerialize)
|
26076
|
-
? $form.serializeObject()
|
26077
|
-
: $form.serialize(),
|
26228
|
+
formData = {},
|
26078
26229
|
hasOtherData
|
26079
26230
|
;
|
26080
|
-
data = data || settings.data;
|
26231
|
+
data = data || originalData || settings.data;
|
26081
26232
|
hasOtherData = $.isPlainObject(data);
|
26082
26233
|
|
26083
|
-
|
26084
|
-
|
26085
|
-
|
26086
|
-
|
26087
|
-
|
26088
|
-
|
26089
|
-
|
26090
|
-
|
26091
|
-
|
26234
|
+
$.each($form.serializeArray(), function (i, element) {
|
26235
|
+
var node = formData[element.name];
|
26236
|
+
|
26237
|
+
if ('undefined' !== typeof node && node !== null) {
|
26238
|
+
if (Array.isArray(node)) {
|
26239
|
+
node.push(element.value);
|
26240
|
+
} else {
|
26241
|
+
formData[element.name] = [node, element.value];
|
26242
|
+
}
|
26243
|
+
} else {
|
26244
|
+
formData[element.name] = element.value;
|
26092
26245
|
}
|
26246
|
+
});
|
26247
|
+
|
26248
|
+
if(hasOtherData) {
|
26249
|
+
module.debug('Extending existing data with form data', data, formData);
|
26250
|
+
data = $.extend(true, {}, data, formData);
|
26093
26251
|
}
|
26094
26252
|
else {
|
26095
26253
|
module.debug('Adding form data', formData);
|
@@ -26340,6 +26498,9 @@ $.api = $.fn.api = function(parameters) {
|
|
26340
26498
|
},
|
26341
26499
|
|
26342
26500
|
get: {
|
26501
|
+
normalizedData: function(){
|
26502
|
+
return typeof settings.data === "string" ? settings.data : JSON.stringify(settings.data, Object.keys(settings.data).sort());
|
26503
|
+
},
|
26343
26504
|
responseFromXHR: function(xhr) {
|
26344
26505
|
return $.isPlainObject(xhr)
|
26345
26506
|
? (module.is.expectingJSON())
|
@@ -26783,7 +26944,6 @@ $.api.settings = {
|
|
26783
26944
|
legacyParameters : 'You are using legacy API success callback names',
|
26784
26945
|
method : 'The method you called is not defined',
|
26785
26946
|
missingAction : 'API action used but no url was defined',
|
26786
|
-
missingSerialize : 'jquery-serialize-object is required to add form data to an existing data object',
|
26787
26947
|
missingURL : 'No URL specified for api event',
|
26788
26948
|
noReturnedValue : 'The beforeSend callback must return a settings object, beforeSend ignored.',
|
26789
26949
|
noStorage : 'Caching responses locally requires session storage',
|
@@ -26819,7 +26979,7 @@ $.api.settings = {
|
|
26819
26979
|
})( jQuery, window, document );
|
26820
26980
|
|
26821
26981
|
/*!
|
26822
|
-
* # Fomantic-UI 2.9.0-beta.
|
26982
|
+
* # Fomantic-UI 2.9.0-beta.203 - State
|
26823
26983
|
* http://github.com/fomantic/Fomantic-UI/
|
26824
26984
|
*
|
26825
26985
|
*
|
@@ -27531,7 +27691,7 @@ $.fn.state.settings = {
|
|
27531
27691
|
})( jQuery, window, document );
|
27532
27692
|
|
27533
27693
|
/*!
|
27534
|
-
* # Fomantic-UI 2.9.0-beta.
|
27694
|
+
* # Fomantic-UI 2.9.0-beta.203 - Visibility
|
27535
27695
|
* http://github.com/fomantic/Fomantic-UI/
|
27536
27696
|
*
|
27537
27697
|
*
|