fomantic-ui 2.9.0-beta.28 → 2.9.0-beta.282
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 +224 -3
- package/.github/workflows/ci.yml +7 -6
- package/.github/workflows/nightly.yml +13 -8
- package/.github/workflows/release.yml +31 -0
- package/CONTRIBUTORS.md +77 -37
- package/README.md +8 -8
- package/dist/components/accordion.css +175 -35
- package/dist/components/accordion.js +6 -3
- package/dist/components/accordion.min.css +2 -2
- package/dist/components/accordion.min.js +3 -3
- package/dist/components/ad.css +4 -4
- package/dist/components/ad.min.css +2 -2
- package/dist/components/api.js +88 -29
- 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 +195 -148
- package/dist/components/button.min.css +2 -2
- package/dist/components/calendar.css +18 -1
- package/dist/components/calendar.js +84 -67
- package/dist/components/calendar.min.css +2 -2
- package/dist/components/calendar.min.js +3 -3
- package/dist/components/card.css +753 -116
- package/dist/components/card.min.css +2 -2
- package/dist/components/checkbox.css +92 -91
- 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 +12 -12
- package/dist/components/comment.min.css +2 -2
- package/dist/components/container.css +97 -3
- package/dist/components/container.min.css +2 -2
- package/dist/components/dimmer.css +29 -14
- package/dist/components/dimmer.js +11 -5
- package/dist/components/dimmer.min.css +2 -2
- package/dist/components/dimmer.min.js +3 -3
- package/dist/components/divider.css +31 -31
- package/dist/components/divider.min.css +2 -2
- package/dist/components/dropdown.css +89 -49
- package/dist/components/dropdown.js +95 -49
- package/dist/components/dropdown.min.css +2 -2
- package/dist/components/dropdown.min.js +3 -3
- package/dist/components/embed.css +5 -5
- package/dist/components/embed.js +1 -1
- package/dist/components/embed.min.css +2 -2
- package/dist/components/embed.min.js +3 -3
- package/dist/components/emoji.css +10840 -8832
- package/dist/components/emoji.min.css +1 -1
- package/dist/components/feed.css +29 -29
- package/dist/components/feed.min.css +2 -2
- package/dist/components/flag.css +1001 -892
- package/dist/components/flag.min.css +2 -2
- package/dist/components/form.css +158 -81
- package/dist/components/form.js +38 -29
- package/dist/components/form.min.css +2 -2
- package/dist/components/form.min.js +3 -3
- package/dist/components/grid.css +25 -21
- package/dist/components/grid.min.css +2 -2
- package/dist/components/header.css +5 -3
- package/dist/components/header.min.css +2 -2
- package/dist/components/icon.css +2063 -1984
- 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 +758 -21
- package/dist/components/input.min.css +2 -2
- package/dist/components/item.css +16 -16
- package/dist/components/item.min.css +2 -2
- package/dist/components/label.css +64 -64
- package/dist/components/label.min.css +2 -2
- package/dist/components/list.css +30 -30
- package/dist/components/list.min.css +2 -2
- package/dist/components/loader.css +352 -352
- package/dist/components/loader.min.css +2 -2
- package/dist/components/menu.css +107 -75
- package/dist/components/menu.min.css +1 -1
- package/dist/components/message.css +42 -42
- package/dist/components/message.min.css +2 -2
- package/dist/components/modal.css +13 -1
- package/dist/components/modal.js +127 -49
- 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 +3 -3
- package/dist/components/placeholder.css +33 -33
- package/dist/components/placeholder.min.css +2 -2
- package/dist/components/popup.css +99 -103
- package/dist/components/popup.js +2 -2
- package/dist/components/popup.min.css +2 -2
- package/dist/components/popup.min.js +3 -3
- 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 +1 -1
- package/dist/components/rating.js +1 -1
- package/dist/components/rating.min.css +1 -1
- package/dist/components/rating.min.js +3 -3
- package/dist/components/reset.css +5 -4
- package/dist/components/reset.min.css +2 -2
- package/dist/components/reveal.css +1 -1
- package/dist/components/reveal.min.css +1 -1
- package/dist/components/search.css +3 -3
- package/dist/components/search.js +2 -2
- package/dist/components/search.min.css +2 -2
- package/dist/components/search.min.js +3 -3
- package/dist/components/segment.css +118 -34
- package/dist/components/segment.min.css +2 -2
- package/dist/components/shape.css +1 -1
- package/dist/components/shape.js +3 -3
- package/dist/components/shape.min.css +1 -1
- package/dist/components/shape.min.js +3 -3
- package/dist/components/sidebar.css +7 -5
- package/dist/components/sidebar.js +12 -10
- package/dist/components/sidebar.min.css +2 -2
- package/dist/components/sidebar.min.js +3 -3
- package/dist/components/site.css +65 -39
- package/dist/components/site.js +1 -1
- package/dist/components/site.min.css +2 -2
- package/dist/components/site.min.js +3 -3
- package/dist/components/slider.css +17 -17
- package/dist/components/slider.js +68 -51
- package/dist/components/slider.min.css +1 -1
- package/dist/components/slider.min.js +3 -3
- package/dist/components/state.js +1 -1
- package/dist/components/state.min.js +3 -3
- package/dist/components/statistic.css +2 -2
- package/dist/components/statistic.min.css +2 -2
- package/dist/components/step.css +30 -30
- 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 +3 -3
- package/dist/components/tab.css +5 -5
- package/dist/components/tab.js +23 -5
- package/dist/components/tab.min.css +2 -2
- package/dist/components/tab.min.js +3 -3
- package/dist/components/table.css +1174 -32
- 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 +21 -16
- package/dist/components/transition.min.css +1 -1
- package/dist/components/transition.min.js +3 -3
- package/dist/components/visibility.js +1 -1
- package/dist/components/visibility.min.js +3 -3
- package/dist/semantic.css +19523 -13089
- package/dist/semantic.js +666 -369
- package/dist/semantic.min.css +3 -3
- package/dist/semantic.min.js +3 -3
- package/dist/themes/default/assets/fonts/brand-icons.eot +0 -0
- package/dist/themes/default/assets/fonts/brand-icons.svg +801 -654
- package/dist/themes/default/assets/fonts/brand-icons.ttf +0 -0
- package/dist/themes/default/assets/fonts/brand-icons.woff +0 -0
- package/dist/themes/default/assets/fonts/brand-icons.woff2 +0 -0
- package/dist/themes/default/assets/fonts/icons.eot +0 -0
- package/dist/themes/default/assets/fonts/icons.svg +1175 -1079
- package/dist/themes/default/assets/fonts/icons.ttf +0 -0
- package/dist/themes/default/assets/fonts/icons.woff +0 -0
- package/dist/themes/default/assets/fonts/icons.woff2 +0 -0
- package/dist/themes/default/assets/fonts/outline-icons.eot +0 -0
- package/dist/themes/default/assets/fonts/outline-icons.svg +93 -95
- package/dist/themes/default/assets/fonts/outline-icons.ttf +0 -0
- package/dist/themes/default/assets/fonts/outline-icons.woff +0 -0
- package/dist/themes/default/assets/fonts/outline-icons.woff2 +0 -0
- package/examples/assets/library/iframe-content.js +8 -8
- package/examples/assets/library/iframe.js +3 -3
- package/package.json +18 -16
- package/scripts/nightly-version.js +47 -38
- package/src/definitions/behaviors/api.js +87 -28
- package/src/definitions/behaviors/form.js +37 -28
- package/src/definitions/collections/form.less +225 -161
- package/src/definitions/collections/grid.less +723 -687
- package/src/definitions/collections/menu.less +224 -166
- package/src/definitions/collections/message.less +49 -47
- package/src/definitions/collections/table.less +855 -268
- package/src/definitions/elements/button.less +611 -469
- package/src/definitions/elements/container.less +145 -8
- package/src/definitions/elements/divider.less +24 -24
- package/src/definitions/elements/emoji.less +16 -10
- package/src/definitions/elements/flag.less +8 -18
- package/src/definitions/elements/header.less +46 -37
- package/src/definitions/elements/icon.less +39 -32
- package/src/definitions/elements/input.less +268 -26
- package/src/definitions/elements/label.less +125 -124
- package/src/definitions/elements/list.less +84 -75
- package/src/definitions/elements/loader.less +99 -98
- package/src/definitions/elements/placeholder.less +32 -32
- package/src/definitions/elements/segment.less +174 -55
- package/src/definitions/elements/step.less +76 -72
- package/src/definitions/elements/text.less +17 -15
- package/src/definitions/globals/reset.less +2 -2
- package/src/definitions/globals/site.less +23 -2
- package/src/definitions/modules/accordion.js +5 -2
- package/src/definitions/modules/accordion.less +181 -29
- package/src/definitions/modules/calendar.js +83 -66
- package/src/definitions/modules/calendar.less +20 -0
- package/src/definitions/modules/checkbox.js +16 -10
- package/src/definitions/modules/checkbox.less +83 -227
- package/src/definitions/modules/dimmer.js +10 -4
- package/src/definitions/modules/dimmer.less +21 -8
- package/src/definitions/modules/dropdown.js +94 -48
- package/src/definitions/modules/dropdown.less +178 -127
- package/src/definitions/modules/embed.less +4 -4
- package/src/definitions/modules/modal.js +126 -48
- package/src/definitions/modules/modal.less +12 -0
- package/src/definitions/modules/nag.less +20 -19
- package/src/definitions/modules/popup.js +1 -1
- package/src/definitions/modules/popup.less +86 -90
- package/src/definitions/modules/progress.js +3 -0
- package/src/definitions/modules/progress.less +19 -18
- package/src/definitions/modules/rating.less +35 -34
- package/src/definitions/modules/search.js +1 -1
- package/src/definitions/modules/search.less +35 -19
- package/src/definitions/modules/shape.js +2 -2
- package/src/definitions/modules/sidebar.js +11 -9
- package/src/definitions/modules/sidebar.less +36 -22
- package/src/definitions/modules/slider.js +67 -50
- package/src/definitions/modules/slider.less +48 -47
- package/src/definitions/modules/tab.js +22 -4
- package/src/definitions/modules/tab.less +4 -4
- package/src/definitions/modules/toast.js +55 -27
- package/src/definitions/modules/toast.less +48 -16
- package/src/definitions/modules/transition.js +20 -15
- package/src/definitions/views/ad.less +3 -3
- package/src/definitions/views/card.less +519 -374
- package/src/definitions/views/comment.less +93 -82
- package/src/definitions/views/feed.less +164 -144
- package/src/definitions/views/item.less +251 -198
- package/src/definitions/views/statistic.less +91 -89
- package/src/themes/basic/elements/icon.overrides +149 -149
- package/src/themes/basic/elements/step.overrides +2 -2
- 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/assets/fonts/brand-icons.eot +0 -0
- package/src/themes/default/assets/fonts/brand-icons.svg +801 -654
- package/src/themes/default/assets/fonts/brand-icons.ttf +0 -0
- package/src/themes/default/assets/fonts/brand-icons.woff +0 -0
- package/src/themes/default/assets/fonts/brand-icons.woff2 +0 -0
- package/src/themes/default/assets/fonts/icons.eot +0 -0
- package/src/themes/default/assets/fonts/icons.svg +1175 -1079
- package/src/themes/default/assets/fonts/icons.ttf +0 -0
- package/src/themes/default/assets/fonts/icons.woff +0 -0
- package/src/themes/default/assets/fonts/icons.woff2 +0 -0
- package/src/themes/default/assets/fonts/outline-icons.eot +0 -0
- package/src/themes/default/assets/fonts/outline-icons.svg +93 -95
- package/src/themes/default/assets/fonts/outline-icons.ttf +0 -0
- package/src/themes/default/assets/fonts/outline-icons.woff +0 -0
- package/src/themes/default/assets/fonts/outline-icons.woff2 +0 -0
- package/src/themes/default/collections/form.variables +4 -0
- 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 +7 -1
- package/src/themes/default/elements/container.variables +12 -0
- package/src/themes/default/elements/divider.overrides +7 -7
- package/src/themes/default/elements/emoji.overrides +1737 -1235
- package/src/themes/default/elements/emoji.variables +1 -1
- package/src/themes/default/elements/flag.overrides +1641 -986
- package/src/themes/default/elements/flag.variables +7 -5
- package/src/themes/default/elements/icon.overrides +1975 -1949
- 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 +3 -3
- package/src/themes/default/globals/site.variables +6 -0
- package/src/themes/default/globals/variation.variables +140 -6
- package/src/themes/default/modules/accordion.overrides +6 -5
- package/src/themes/default/modules/accordion.variables +49 -2
- package/src/themes/default/modules/calendar.variables +3 -0
- package/src/themes/default/modules/checkbox.overrides +9 -9
- package/src/themes/default/modules/checkbox.variables +5 -5
- package/src/themes/default/modules/dimmer.variables +1 -1
- package/src/themes/default/modules/dropdown.overrides +5 -5
- package/src/themes/default/modules/dropdown.variables +4 -10
- package/src/themes/default/modules/modal.variables +13 -0
- package/src/themes/default/modules/popup.variables +0 -2
- package/src/themes/default/modules/toast.variables +3 -0
- package/src/themes/default/views/card.variables +8 -0
- package/src/themes/famfamfam/elements/flag.overrides +1026 -0
- package/src/themes/famfamfam/elements/flag.variables +13 -0
- package/src/themes/github/elements/icon.overrides +206 -206
- package/src/themes/github/elements/step.overrides +5 -5
- package/src/themes/github/modules/dropdown.overrides +6 -6
- package/src/themes/instagram/views/card.overrides +1 -1
- package/src/themes/joypixels/elements/emoji.overrides +1762 -1260
- package/src/themes/joypixels/elements/emoji.variables +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/elements/icon.overrides +932 -932
- package/src/themes/material/globals/site.variables +0 -1
- package/src/themes/material/modules/dropdown.overrides +1 -1
- package/src/themes/material/modules/modal.overrides +1 -1
- package/src/themes/pulsar/elements/loader.overrides +2 -2
- package/src/themes/resetcss/globals/reset.overrides +3 -3
- package/src/themes/rtl/globals/site.overrides +1 -1
- package/src/themes/striped/modules/progress.overrides +1 -1
- package/src/themes/twitter/elements/emoji.overrides +1737 -1235
- package/tasks/build/css.js +6 -1
- package/tasks/config/project/install.js +15 -13
- package/tasks/install.js +1 -0
- package/test/helpers/sinon.js +2 -2
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.282+54be6de
|
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.282+54be6de - 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.282+54be6de - Form Validation
|
507
507
|
* http://github.com/fomantic/Fomantic-UI/
|
508
508
|
*
|
509
509
|
*
|
@@ -635,6 +635,11 @@ $.fn.form = function(parameters) {
|
|
635
635
|
$reset = $module.find(selector.reset);
|
636
636
|
},
|
637
637
|
|
638
|
+
refreshEvents: function() {
|
639
|
+
module.removeEvents();
|
640
|
+
module.bindEvents();
|
641
|
+
},
|
642
|
+
|
638
643
|
submit: function() {
|
639
644
|
module.verbose('Submitting form', $module);
|
640
645
|
submitting = true;
|
@@ -895,7 +900,6 @@ $.fn.form = function(parameters) {
|
|
895
900
|
$module.off(eventNamespace);
|
896
901
|
$field.off(eventNamespace);
|
897
902
|
$submit.off(eventNamespace);
|
898
|
-
$field.off(eventNamespace);
|
899
903
|
},
|
900
904
|
|
901
905
|
event: {
|
@@ -923,6 +927,7 @@ $.fn.form = function(parameters) {
|
|
923
927
|
$field.one('keyup' + eventNamespace, module.event.field.keyup);
|
924
928
|
module.submit();
|
925
929
|
module.debug('Enter pressed on input submitting form');
|
930
|
+
event.preventDefault();
|
926
931
|
}
|
927
932
|
keyHeldDown = true;
|
928
933
|
}
|
@@ -1047,7 +1052,7 @@ $.fn.form = function(parameters) {
|
|
1047
1052
|
parts,
|
1048
1053
|
suffixPrompt
|
1049
1054
|
;
|
1050
|
-
if(ancillary && ancillary.indexOf('..') >= 0) {
|
1055
|
+
if(ancillary && ['integer', 'decimal', 'number'].indexOf(ruleName) >= 0 && ancillary.indexOf('..') >= 0) {
|
1051
1056
|
parts = ancillary.split('..', 2);
|
1052
1057
|
if(!rule.prompt) {
|
1053
1058
|
suffixPrompt = (
|
@@ -1089,7 +1094,7 @@ $.fn.form = function(parameters) {
|
|
1089
1094
|
if(isLegacySettings) {
|
1090
1095
|
// 1.x (ducktyped)
|
1091
1096
|
settings = $.extend(true, {}, $.fn.form.settings, legacyParameters);
|
1092
|
-
validation = $.extend({}, $.fn.form.settings.defaults, parameters);
|
1097
|
+
validation = $.extend(true, {}, $.fn.form.settings.defaults, parameters);
|
1093
1098
|
module.error(settings.error.oldSyntax, element);
|
1094
1099
|
module.verbose('Extending settings from legacy parameters', validation, settings);
|
1095
1100
|
}
|
@@ -1099,13 +1104,13 @@ $.fn.form = function(parameters) {
|
|
1099
1104
|
parameters.fields = module.get.fieldsFromShorthand(parameters.fields);
|
1100
1105
|
}
|
1101
1106
|
settings = $.extend(true, {}, $.fn.form.settings, parameters);
|
1102
|
-
validation = $.extend({}, $.fn.form.settings.defaults, settings.fields);
|
1107
|
+
validation = $.extend(true, {}, $.fn.form.settings.defaults, settings.fields);
|
1103
1108
|
module.verbose('Extending settings', validation, settings);
|
1104
1109
|
}
|
1105
1110
|
}
|
1106
1111
|
else {
|
1107
|
-
settings = $.fn.form.settings;
|
1108
|
-
validation = $.fn.form.settings.defaults;
|
1112
|
+
settings = $.extend(true, {}, $.fn.form.settings);
|
1113
|
+
validation = $.extend(true, {}, $.fn.form.settings.defaults);
|
1109
1114
|
module.verbose('Using default form validation', validation, settings);
|
1110
1115
|
}
|
1111
1116
|
|
@@ -1367,9 +1372,11 @@ $.fn.form = function(parameters) {
|
|
1367
1372
|
}
|
1368
1373
|
});
|
1369
1374
|
module.debug('Adding rules', newValidation.rules, validation);
|
1375
|
+
module.refreshEvents();
|
1370
1376
|
},
|
1371
1377
|
fields: function(fields) {
|
1372
|
-
validation = $.extend({}, validation, module.get.fieldsFromShorthand(fields));
|
1378
|
+
validation = $.extend(true, {}, validation, module.get.fieldsFromShorthand(fields));
|
1379
|
+
module.refreshEvents();
|
1373
1380
|
},
|
1374
1381
|
prompt: function(identifier, errors, internal) {
|
1375
1382
|
var
|
@@ -1390,13 +1397,13 @@ $.fn.form = function(parameters) {
|
|
1390
1397
|
}
|
1391
1398
|
if(settings.inline) {
|
1392
1399
|
if(!promptExists) {
|
1393
|
-
$prompt =
|
1400
|
+
$prompt = $('<div/>').addClass(className.label);
|
1394
1401
|
$prompt
|
1395
1402
|
.appendTo($fieldGroup)
|
1396
1403
|
;
|
1397
1404
|
}
|
1398
1405
|
$prompt
|
1399
|
-
.html(errors
|
1406
|
+
.html(settings.templates.prompt(errors))
|
1400
1407
|
;
|
1401
1408
|
if(!promptExists) {
|
1402
1409
|
if(settings.transition && module.can.useElement('transition') && $module.transition('is supported')) {
|
@@ -1466,6 +1473,7 @@ $.fn.form = function(parameters) {
|
|
1466
1473
|
$.each(fields, function(index, field) {
|
1467
1474
|
module.remove.rule(field);
|
1468
1475
|
});
|
1476
|
+
module.refreshEvents();
|
1469
1477
|
},
|
1470
1478
|
// alias
|
1471
1479
|
rules: function(field, rules) {
|
@@ -1589,12 +1597,15 @@ $.fn.form = function(parameters) {
|
|
1589
1597
|
}
|
1590
1598
|
else if(isCheckbox) {
|
1591
1599
|
module.verbose('Setting checkbox value', value, $element);
|
1592
|
-
if(value === true || value === 1) {
|
1600
|
+
if(value === true || value === 1 || value === 'on') {
|
1593
1601
|
$element.checkbox('check');
|
1594
1602
|
}
|
1595
1603
|
else {
|
1596
1604
|
$element.checkbox('uncheck');
|
1597
1605
|
}
|
1606
|
+
if(typeof value === 'string') {
|
1607
|
+
$field.val(value);
|
1608
|
+
}
|
1598
1609
|
}
|
1599
1610
|
else if(isDropdown) {
|
1600
1611
|
module.verbose('Setting dropdown value', value, $element);
|
@@ -1707,7 +1718,7 @@ $.fn.form = function(parameters) {
|
|
1707
1718
|
if(event && $module.data('moduleApi') !== undefined) {
|
1708
1719
|
event.stopImmediatePropagation();
|
1709
1720
|
}
|
1710
|
-
if(settings.errorFocus) {
|
1721
|
+
if(settings.errorFocus && ignoreCallbacks !== true) {
|
1711
1722
|
var focusElement, hasTabIndex = true;
|
1712
1723
|
if (typeof settings.errorFocus === 'string') {
|
1713
1724
|
focusElement = $(settings.errorFocus);
|
@@ -2030,7 +2041,7 @@ $.fn.form.settings = {
|
|
2030
2041
|
|
2031
2042
|
autoCheckRequired : false,
|
2032
2043
|
preventLeaving : false,
|
2033
|
-
errorFocus :
|
2044
|
+
errorFocus : true,
|
2034
2045
|
dateHandling : 'date', // 'date', 'input', 'formatter'
|
2035
2046
|
|
2036
2047
|
onValid : function() {},
|
@@ -2086,7 +2097,6 @@ $.fn.form.settings = {
|
|
2086
2097
|
doesntContain : '{name} cannot contain "{ruleValue}"',
|
2087
2098
|
doesntContainExactly : '{name} cannot contain exactly "{ruleValue}"',
|
2088
2099
|
minLength : '{name} must be at least {ruleValue} characters',
|
2089
|
-
length : '{name} must be at least {ruleValue} characters',
|
2090
2100
|
exactLength : '{name} must be exactly {ruleValue} characters',
|
2091
2101
|
maxLength : '{name} cannot be longer than {ruleValue} characters',
|
2092
2102
|
match : '{name} must match {ruleValue} field',
|
@@ -2100,7 +2110,7 @@ $.fn.form.settings = {
|
|
2100
2110
|
selector : {
|
2101
2111
|
checkbox : 'input[type="checkbox"], input[type="radio"]',
|
2102
2112
|
clear : '.clear',
|
2103
|
-
field : 'input:not(.search):not([type="file"]), textarea, select',
|
2113
|
+
field : 'input:not(.search):not([type="file"]):not([type="reset"]):not([type="button"]):not([type="submit"]), textarea, select',
|
2104
2114
|
group : '.field',
|
2105
2115
|
input : 'input:not([type="file"])',
|
2106
2116
|
message : '.error.message',
|
@@ -2141,15 +2151,22 @@ $.fn.form.settings = {
|
|
2141
2151
|
html += '<li>' + value + '</li>';
|
2142
2152
|
});
|
2143
2153
|
html += '</ul>';
|
2144
|
-
return
|
2154
|
+
return html;
|
2145
2155
|
},
|
2146
2156
|
|
2147
|
-
// template that produces label
|
2148
|
-
prompt: function(errors
|
2149
|
-
|
2150
|
-
|
2151
|
-
|
2157
|
+
// template that produces label content
|
2158
|
+
prompt: function(errors) {
|
2159
|
+
if(errors.length === 1){
|
2160
|
+
return errors[0];
|
2161
|
+
}
|
2162
|
+
var
|
2163
|
+
html = '<ul class="ui list">'
|
2152
2164
|
;
|
2165
|
+
$.each(errors, function(index, value) {
|
2166
|
+
html += '<li>' + value + '</li>';
|
2167
|
+
});
|
2168
|
+
html += '</ul>';
|
2169
|
+
return html;
|
2153
2170
|
}
|
2154
2171
|
},
|
2155
2172
|
|
@@ -2359,14 +2376,6 @@ $.fn.form.settings = {
|
|
2359
2376
|
;
|
2360
2377
|
},
|
2361
2378
|
|
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
2379
|
// is exactly length
|
2371
2380
|
exactLength: function(value, requiredLength) {
|
2372
2381
|
return (value !== undefined)
|
@@ -2575,7 +2584,7 @@ $.fn.form.settings = {
|
|
2575
2584
|
})( jQuery, window, document );
|
2576
2585
|
|
2577
2586
|
/*!
|
2578
|
-
* # Fomantic-UI 2.9.0-beta.
|
2587
|
+
* # Fomantic-UI 2.9.0-beta.282+54be6de - Accordion
|
2579
2588
|
* http://github.com/fomantic/Fomantic-UI/
|
2580
2589
|
*
|
2581
2590
|
*
|
@@ -2693,8 +2702,10 @@ $.fn.accordion = function(parameters) {
|
|
2693
2702
|
},
|
2694
2703
|
|
2695
2704
|
event: {
|
2696
|
-
click: function() {
|
2697
|
-
|
2705
|
+
click: function(event) {
|
2706
|
+
if($(event.target).closest(selector.ignore).length === 0) {
|
2707
|
+
module.toggle.call(this);
|
2708
|
+
}
|
2698
2709
|
}
|
2699
2710
|
},
|
2700
2711
|
|
@@ -3178,6 +3189,7 @@ $.fn.accordion.settings = {
|
|
3178
3189
|
accordion : '.accordion',
|
3179
3190
|
title : '.title',
|
3180
3191
|
trigger : '.title',
|
3192
|
+
ignore : '.ui.dropdown',
|
3181
3193
|
content : '.content'
|
3182
3194
|
}
|
3183
3195
|
|
@@ -3194,7 +3206,7 @@ $.extend( $.easing, {
|
|
3194
3206
|
|
3195
3207
|
|
3196
3208
|
/*!
|
3197
|
-
* # Fomantic-UI 2.9.0-beta.
|
3209
|
+
* # Fomantic-UI 2.9.0-beta.282+54be6de - Calendar
|
3198
3210
|
* http://github.com/fomantic/Fomantic-UI/
|
3199
3211
|
*
|
3200
3212
|
*
|
@@ -3317,7 +3329,7 @@ $.fn.calendar = function(parameters) {
|
|
3317
3329
|
module.set.maxDate($module.data(metadata.maxDate));
|
3318
3330
|
}
|
3319
3331
|
module.setting('type', module.get.type());
|
3320
|
-
module.setting('on', settings.on ||
|
3332
|
+
module.setting('on', settings.on || 'click');
|
3321
3333
|
},
|
3322
3334
|
popup: function () {
|
3323
3335
|
if (settings.inline) {
|
@@ -3517,7 +3529,7 @@ $.fn.calendar = function(parameters) {
|
|
3517
3529
|
var headerDate = isYear || isMonth ? new Date(year, 0, 1) :
|
3518
3530
|
isDay ? new Date(year, month, 1) : new Date(year, month, day, hour, minute);
|
3519
3531
|
var headerText = $('<span/>').addClass(className.link).appendTo(cell);
|
3520
|
-
headerText.text(
|
3532
|
+
headerText.text(module.helper.dateFormat(formatter[mode+'Header'], headerDate));
|
3521
3533
|
var newMode = isMonth ? (settings.disableYear ? 'day' : 'year') :
|
3522
3534
|
isDay ? (settings.disableMonth ? 'year' : 'month') : 'day';
|
3523
3535
|
headerText.data(metadata.mode, newMode);
|
@@ -3565,7 +3577,7 @@ $.fn.calendar = function(parameters) {
|
|
3565
3577
|
isHour ? new Date(year, month, day, i) : new Date(year, month, day, hour, i * settings.minTimeGap);
|
3566
3578
|
var cellText = isYear ? i :
|
3567
3579
|
isMonth ? settings.text.monthsShort[i] : isDay ? cellDate.getDate() :
|
3568
|
-
|
3580
|
+
module.helper.dateFormat(formatter.cellTime,cellDate);
|
3569
3581
|
cell = $('<td/>').addClass(className.cell).appendTo(row);
|
3570
3582
|
cell.text(cellText);
|
3571
3583
|
cell.data(metadata.date, cellDate);
|
@@ -3697,7 +3709,7 @@ $.fn.calendar = function(parameters) {
|
|
3697
3709
|
var winWidth = $(window).width();
|
3698
3710
|
$container.find('td[data-position]').each(function () {
|
3699
3711
|
var cell = $(this);
|
3700
|
-
var tooltipWidth = window.getComputedStyle(cell[0], '
|
3712
|
+
var tooltipWidth = window.getComputedStyle(cell[0], '::after').width.replace(/[^0-9\.]/g,'');
|
3701
3713
|
var tooltipPosition = cell.attr('data-position');
|
3702
3714
|
// use a fallback width of 250 (calendar width) for IE/Edge (which return "auto")
|
3703
3715
|
var calcPosition = (winWidth - cell.width() - (parseInt(tooltipWidth,10) || 250)) > cell.offset().left ? 'right' : 'left';
|
@@ -3846,7 +3858,7 @@ $.fn.calendar = function(parameters) {
|
|
3846
3858
|
$container.removeClass(className.active);
|
3847
3859
|
if (settings.formatInput) {
|
3848
3860
|
var date = module.get.date();
|
3849
|
-
var text = formatter.
|
3861
|
+
var text = module.helper.dateFormat(formatter[settings.type], date);
|
3850
3862
|
$input.val(text);
|
3851
3863
|
}
|
3852
3864
|
if(selectionComplete){
|
@@ -3917,6 +3929,9 @@ $.fn.calendar = function(parameters) {
|
|
3917
3929
|
return AWN - Math.floor(Date.UTC(Wyr, 0, 7) / ms7d) + 1;
|
3918
3930
|
}();
|
3919
3931
|
},
|
3932
|
+
formattedDate: function(format, date) {
|
3933
|
+
return module.helper.dateFormat(format || formatter[settings.type], date || module.get.date());
|
3934
|
+
},
|
3920
3935
|
date: function () {
|
3921
3936
|
return module.helper.sanitiseDate($module.data(metadata.date)) || null;
|
3922
3937
|
},
|
@@ -3941,7 +3956,7 @@ $.fn.calendar = function(parameters) {
|
|
3941
3956
|
return $module.data(metadata.maxDate) || null;
|
3942
3957
|
},
|
3943
3958
|
monthOffset: function () {
|
3944
|
-
return $module.data(metadata.monthOffset) || 0;
|
3959
|
+
return $module.data(metadata.monthOffset) || settings.monthOffset || 0;
|
3945
3960
|
},
|
3946
3961
|
mode: function () {
|
3947
3962
|
//only returns valid modes for the current settings
|
@@ -4010,7 +4025,7 @@ $.fn.calendar = function(parameters) {
|
|
4010
4025
|
date = module.helper.dateInRange(date);
|
4011
4026
|
|
4012
4027
|
var mode = module.get.mode();
|
4013
|
-
var text = formatter.
|
4028
|
+
var text = module.helper.dateFormat(formatter[settings.type],date);
|
4014
4029
|
|
4015
4030
|
if (fireChange && settings.onBeforeChange.call(element, date, text, mode) === false) {
|
4016
4031
|
return false;
|
@@ -4181,6 +4196,60 @@ $.fn.calendar = function(parameters) {
|
|
4181
4196
|
},
|
4182
4197
|
|
4183
4198
|
helper: {
|
4199
|
+
dateFormat: function(format,date) {
|
4200
|
+
if (!(date instanceof Date)) {
|
4201
|
+
return '';
|
4202
|
+
}
|
4203
|
+
if(typeof format === 'function') {
|
4204
|
+
return format.call(module, date, settings);
|
4205
|
+
}
|
4206
|
+
|
4207
|
+
var D = date.getDate(),
|
4208
|
+
M = date.getMonth(),
|
4209
|
+
Y = date.getFullYear(),
|
4210
|
+
d = date.getDay(),
|
4211
|
+
H = date.getHours(),
|
4212
|
+
m = date.getMinutes(),
|
4213
|
+
s = date.getSeconds(),
|
4214
|
+
w = module.get.weekOfYear(Y,M,D+1-settings.firstDayOfWeek),
|
4215
|
+
h = H % 12 || 12,
|
4216
|
+
a = H < 12 ? settings.text.am.toLowerCase() : settings.text.pm.toLowerCase(),
|
4217
|
+
tokens = {
|
4218
|
+
D: D,
|
4219
|
+
DD: ('0'+D).slice(-2),
|
4220
|
+
M: M + 1,
|
4221
|
+
MM: ('0'+(M+1)).slice(-2),
|
4222
|
+
MMM: settings.text.monthsShort[M],
|
4223
|
+
MMMM: settings.text.months[M],
|
4224
|
+
Y: Y,
|
4225
|
+
YY: String(Y).slice(2),
|
4226
|
+
YYYY: Y,
|
4227
|
+
d: d,
|
4228
|
+
dd: settings.text.dayNamesShort[d].slice(0,2),
|
4229
|
+
ddd: settings.text.dayNamesShort[d],
|
4230
|
+
dddd: settings.text.dayNames[d],
|
4231
|
+
h: h,
|
4232
|
+
hh: ('0'+h).slice(-2),
|
4233
|
+
H: H,
|
4234
|
+
HH: ('0'+H).slice(-2),
|
4235
|
+
m: m,
|
4236
|
+
mm: ('0'+m).slice(-2),
|
4237
|
+
s: s,
|
4238
|
+
ss: ('0'+s).slice(-2),
|
4239
|
+
a: a,
|
4240
|
+
A: a.toUpperCase(),
|
4241
|
+
S: ['th', 'st', 'nd', 'rd'][D % 10 > 3 ? 0 : (D % 100 - D % 10 !== 10) * D % 10],
|
4242
|
+
w: w,
|
4243
|
+
ww: ('0'+w).slice(-2)
|
4244
|
+
}
|
4245
|
+
;
|
4246
|
+
return format.replace(settings.regExp.token, function (match) {
|
4247
|
+
if (match in tokens) {
|
4248
|
+
return tokens[match];
|
4249
|
+
}
|
4250
|
+
return match.slice(1, match.length - 1);
|
4251
|
+
});
|
4252
|
+
},
|
4184
4253
|
isDisabled: function(date, mode) {
|
4185
4254
|
return (mode === 'day' || mode === 'month' || mode === 'year' || mode === 'hour') && (((mode === 'day' && settings.disabledDaysOfWeek.indexOf(date.getDay()) !== -1) || settings.disabledDates.some(function(d){
|
4186
4255
|
if(typeof d === 'string') {
|
@@ -4631,7 +4700,7 @@ $.fn.calendar.settings = {
|
|
4631
4700
|
constantHeight : true, // add rows to shorter months to keep day calendar height consistent (6 rows)
|
4632
4701
|
today : false, // show a 'today/now' button at the bottom of the calendar
|
4633
4702
|
closable : true, // close the popup after selecting a date/time
|
4634
|
-
monthFirst : true, // month before day when parsing
|
4703
|
+
monthFirst : true, // month before day when parsing date from text
|
4635
4704
|
touchReadonly : true, // set input to readonly on touch devices
|
4636
4705
|
inline : false, // create the calendar inline instead of inside a popup
|
4637
4706
|
on : null, // when to show the popup (defaults to 'focus' for input, 'click' for others)
|
@@ -4639,7 +4708,6 @@ $.fn.calendar.settings = {
|
|
4639
4708
|
startMode : false, // display mode to start in, can be 'year', 'month', 'day', 'hour', 'minute' (false = 'day')
|
4640
4709
|
minDate : null, // minimum date/time that can be selected, dates/times before are disabled
|
4641
4710
|
maxDate : null, // maximum date/time that can be selected, dates/times after are disabled
|
4642
|
-
ampm : true, // show am/pm in time mode
|
4643
4711
|
disableYear : false, // disable year selection mode
|
4644
4712
|
disableMonth : false, // disable month selection mode
|
4645
4713
|
disableMinute : false, // disable minute selection mode
|
@@ -4647,8 +4715,9 @@ $.fn.calendar.settings = {
|
|
4647
4715
|
startCalendar : null, // jquery object or selector for another calendar that represents the start date of a date range
|
4648
4716
|
endCalendar : null, // jquery object or selector for another calendar that represents the end date of a date range
|
4649
4717
|
multiMonth : 1, // show multiple months when in 'day' mode
|
4718
|
+
monthOffset : 0, // position current month by offset when multimonth > 1
|
4650
4719
|
minTimeGap : 5,
|
4651
|
-
showWeekNumbers :
|
4720
|
+
showWeekNumbers : false, // show Number of Week at the very first column of a dayView
|
4652
4721
|
disabledHours : [], // specific hour(s) which won't be selectable and contain additional information.
|
4653
4722
|
disabledDates : [], // specific day(s) which won't be selectable and contain additional information.
|
4654
4723
|
disabledDaysOfWeek : [], // day(s) which won't be selectable(s) (0 = Sunday)
|
@@ -4662,11 +4731,14 @@ $.fn.calendar.settings = {
|
|
4662
4731
|
position: 'bottom left',
|
4663
4732
|
lastResort: 'bottom left',
|
4664
4733
|
prefer: 'opposite',
|
4734
|
+
observeChanges: false,
|
4665
4735
|
hideOnScroll: false
|
4666
4736
|
},
|
4667
4737
|
|
4668
4738
|
text: {
|
4669
4739
|
days: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],
|
4740
|
+
dayNamesShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],
|
4741
|
+
dayNames: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],
|
4670
4742
|
months: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],
|
4671
4743
|
monthsShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
|
4672
4744
|
today: 'Today',
|
@@ -4677,67 +4749,23 @@ $.fn.calendar.settings = {
|
|
4677
4749
|
},
|
4678
4750
|
|
4679
4751
|
formatter: {
|
4680
|
-
header: function (date, mode, settings) {
|
4681
|
-
return mode === 'year' ? settings.formatter.yearHeader(date, settings) :
|
4682
|
-
mode === 'month' ? settings.formatter.monthHeader(date, settings) :
|
4683
|
-
mode === 'day' ? settings.formatter.dayHeader(date, settings) :
|
4684
|
-
mode === 'hour' ? settings.formatter.hourHeader(date, settings) :
|
4685
|
-
settings.formatter.minuteHeader(date, settings);
|
4686
|
-
},
|
4687
4752
|
yearHeader: function (date, settings) {
|
4688
4753
|
var decadeYear = Math.ceil(date.getFullYear() / 10) * 10;
|
4689
4754
|
return (decadeYear - 9) + ' - ' + (decadeYear + 2);
|
4690
4755
|
},
|
4691
|
-
monthHeader:
|
4692
|
-
|
4693
|
-
|
4694
|
-
|
4695
|
-
var month = settings.text.months[date.getMonth()];
|
4696
|
-
var year = date.getFullYear();
|
4697
|
-
return month + ' ' + year;
|
4698
|
-
},
|
4699
|
-
hourHeader: function (date, settings) {
|
4700
|
-
return settings.formatter.date(date, settings);
|
4701
|
-
},
|
4702
|
-
minuteHeader: function (date, settings) {
|
4703
|
-
return settings.formatter.date(date, settings);
|
4704
|
-
},
|
4756
|
+
monthHeader: 'YYYY',
|
4757
|
+
dayHeader: 'MMMM YYYY',
|
4758
|
+
hourHeader: 'MMMM D, YYYY',
|
4759
|
+
minuteHeader: 'MMMM D, YYYY',
|
4705
4760
|
dayColumnHeader: function (day, settings) {
|
4706
4761
|
return settings.text.days[day];
|
4707
4762
|
},
|
4708
|
-
datetime:
|
4709
|
-
|
4710
|
-
|
4711
|
-
|
4712
|
-
|
4713
|
-
|
4714
|
-
var separator = settings.type === 'datetime' ? ' ' : '';
|
4715
|
-
return day + separator + time;
|
4716
|
-
},
|
4717
|
-
date: function (date, settings) {
|
4718
|
-
if (!date) {
|
4719
|
-
return '';
|
4720
|
-
}
|
4721
|
-
var day = date.getDate();
|
4722
|
-
var month = settings.text.months[date.getMonth()];
|
4723
|
-
var year = date.getFullYear();
|
4724
|
-
return settings.type === 'year' ? year :
|
4725
|
-
settings.type === 'month' ? month + ' ' + year :
|
4726
|
-
(settings.monthFirst ? month + ' ' + day : day + ' ' + month) + ', ' + year;
|
4727
|
-
},
|
4728
|
-
time: function (date, settings, forCalendar) {
|
4729
|
-
if (!date) {
|
4730
|
-
return '';
|
4731
|
-
}
|
4732
|
-
var hour = date.getHours();
|
4733
|
-
var minute = date.getMinutes();
|
4734
|
-
var ampm = '';
|
4735
|
-
if (settings.ampm) {
|
4736
|
-
ampm = ' ' + (hour < 12 ? settings.text.am : settings.text.pm);
|
4737
|
-
hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;
|
4738
|
-
}
|
4739
|
-
return hour + ':' + (minute < 10 ? '0' : '') + minute + ampm;
|
4740
|
-
},
|
4763
|
+
datetime: 'MMMM D, YYYY h:mm A',
|
4764
|
+
date: 'MMMM D, YYYY',
|
4765
|
+
time: 'h:mm A',
|
4766
|
+
cellTime: 'h:mm A',
|
4767
|
+
month: 'MMMM YYYY',
|
4768
|
+
year: 'YYYY',
|
4741
4769
|
today: function (settings) {
|
4742
4770
|
return settings.type === 'date' ? settings.text.today : settings.text.now;
|
4743
4771
|
},
|
@@ -4753,7 +4781,7 @@ $.fn.calendar.settings = {
|
|
4753
4781
|
if (!text) {
|
4754
4782
|
return null;
|
4755
4783
|
}
|
4756
|
-
text = String(text).trim();
|
4784
|
+
text = String(text).trim().replace(/([.:\/\-])\s+/g,'$1').replace(/\s+([.:\/-])/g,'$1').replace(/\s+/g,' ');
|
4757
4785
|
if (text.length === 0) {
|
4758
4786
|
return null;
|
4759
4787
|
}
|
@@ -5006,7 +5034,8 @@ $.fn.calendar.settings = {
|
|
5006
5034
|
|
5007
5035
|
regExp: {
|
5008
5036
|
dateWords: /[^A-Za-z\u00C0-\u024F]+/g,
|
5009
|
-
dateNumbers: /[^\d:]+/g
|
5037
|
+
dateNumbers: /[^\d:]+/g,
|
5038
|
+
token: /d{1,4}|D{1,2}|M{1,4}|YY(?:YY)?|([Hhmsw])\1?|[SAaY]|"[^"]*"|'[^']*'/g
|
5010
5039
|
},
|
5011
5040
|
|
5012
5041
|
error: {
|
@@ -5066,7 +5095,7 @@ $.fn.calendar.settings = {
|
|
5066
5095
|
})(jQuery, window, document);
|
5067
5096
|
|
5068
5097
|
/*!
|
5069
|
-
* # Fomantic-UI 2.9.0-beta.
|
5098
|
+
* # Fomantic-UI 2.9.0-beta.282+54be6de - Checkbox
|
5070
5099
|
* http://github.com/fomantic/Fomantic-UI/
|
5071
5100
|
*
|
5072
5101
|
*
|
@@ -5306,18 +5335,26 @@ $.fn.checkbox = function(parameters) {
|
|
5306
5335
|
}
|
5307
5336
|
}
|
5308
5337
|
|
5338
|
+
shortcutPressed = false;
|
5309
5339
|
if(key == keyCode.escape) {
|
5310
5340
|
module.verbose('Escape key pressed blurring field');
|
5311
5341
|
$input.blur();
|
5312
5342
|
shortcutPressed = true;
|
5313
5343
|
}
|
5314
|
-
else if(!event.ctrlKey &&
|
5315
|
-
|
5316
|
-
|
5317
|
-
|
5318
|
-
|
5319
|
-
|
5320
|
-
|
5344
|
+
else if(!event.ctrlKey && module.can.change()) {
|
5345
|
+
if( key == keyCode.space || (key == keyCode.enter && settings.enableEnterKey) ) {
|
5346
|
+
module.verbose('Enter/space key pressed, toggling checkbox');
|
5347
|
+
module.toggle();
|
5348
|
+
shortcutPressed = true;
|
5349
|
+
} else if($module.is('.toggle, .slider') && !module.is.radio()) {
|
5350
|
+
if(key == keyCode.left && module.is.checked()) {
|
5351
|
+
module.uncheck();
|
5352
|
+
shortcutPressed = true;
|
5353
|
+
} else if(key == keyCode.right && module.is.unchecked()) {
|
5354
|
+
module.check();
|
5355
|
+
shortcutPressed = true;
|
5356
|
+
}
|
5357
|
+
}
|
5321
5358
|
}
|
5322
5359
|
},
|
5323
5360
|
keyup: function(event) {
|
@@ -5390,7 +5427,6 @@ $.fn.checkbox = function(parameters) {
|
|
5390
5427
|
settings.onEnable.call(input);
|
5391
5428
|
// preserve legacy callbacks
|
5392
5429
|
settings.onEnabled.call(input);
|
5393
|
-
module.trigger.change();
|
5394
5430
|
}
|
5395
5431
|
},
|
5396
5432
|
|
@@ -5405,7 +5441,6 @@ $.fn.checkbox = function(parameters) {
|
|
5405
5441
|
settings.onDisable.call(input);
|
5406
5442
|
// preserve legacy callbacks
|
5407
5443
|
settings.onDisabled.call(input);
|
5408
|
-
module.trigger.change();
|
5409
5444
|
}
|
5410
5445
|
},
|
5411
5446
|
|
@@ -5933,7 +5968,7 @@ $.fn.checkbox.settings = {
|
|
5933
5968
|
|
5934
5969
|
selector : {
|
5935
5970
|
checkbox : '.ui.checkbox',
|
5936
|
-
label : 'label
|
5971
|
+
label : 'label',
|
5937
5972
|
input : 'input[type="checkbox"], input[type="radio"]',
|
5938
5973
|
link : 'a[href]'
|
5939
5974
|
}
|
@@ -5943,7 +5978,7 @@ $.fn.checkbox.settings = {
|
|
5943
5978
|
})( jQuery, window, document );
|
5944
5979
|
|
5945
5980
|
/*!
|
5946
|
-
* # Fomantic-UI 2.9.0-beta.
|
5981
|
+
* # Fomantic-UI 2.9.0-beta.282+54be6de - Dimmer
|
5947
5982
|
* http://github.com/fomantic/Fomantic-UI/
|
5948
5983
|
*
|
5949
5984
|
*
|
@@ -6136,11 +6171,14 @@ $.fn.dimmer = function(parameters) {
|
|
6136
6171
|
? callback
|
6137
6172
|
: function(){}
|
6138
6173
|
;
|
6139
|
-
module.debug('Showing dimmer', $dimmer, settings);
|
6140
|
-
module.set.variation();
|
6141
6174
|
if( (!module.is.dimmed() || module.is.animating()) && module.is.enabled() ) {
|
6175
|
+
if(settings.onShow.call(element) === false) {
|
6176
|
+
module.verbose('Show callback returned false cancelling dimmer show');
|
6177
|
+
return;
|
6178
|
+
}
|
6179
|
+
module.debug('Showing dimmer', $dimmer, settings);
|
6180
|
+
module.set.variation();
|
6142
6181
|
module.animate.show(callback);
|
6143
|
-
settings.onShow.call(element);
|
6144
6182
|
settings.onChange.call(element);
|
6145
6183
|
}
|
6146
6184
|
else {
|
@@ -6154,9 +6192,12 @@ $.fn.dimmer = function(parameters) {
|
|
6154
6192
|
: function(){}
|
6155
6193
|
;
|
6156
6194
|
if( module.is.dimmed() || module.is.animating() ) {
|
6195
|
+
if(settings.onHide.call(element) === false) {
|
6196
|
+
module.verbose('Hide callback returned false cancelling dimmer hide');
|
6197
|
+
return;
|
6198
|
+
}
|
6157
6199
|
module.debug('Hiding dimmer', $dimmer);
|
6158
6200
|
module.animate.hide(callback);
|
6159
|
-
settings.onHide.call(element);
|
6160
6201
|
settings.onChange.call(element);
|
6161
6202
|
}
|
6162
6203
|
else {
|
@@ -6700,7 +6741,7 @@ $.fn.dimmer.settings = {
|
|
6700
6741
|
})( jQuery, window, document );
|
6701
6742
|
|
6702
6743
|
/*!
|
6703
|
-
* # Fomantic-UI 2.9.0-beta.
|
6744
|
+
* # Fomantic-UI 2.9.0-beta.282+54be6de - Dropdown
|
6704
6745
|
* http://github.com/fomantic/Fomantic-UI/
|
6705
6746
|
*
|
6706
6747
|
*
|
@@ -6901,6 +6942,7 @@ $.fn.dropdown = function(parameters) {
|
|
6901
6942
|
select: function() {
|
6902
6943
|
if(module.has.input() && selectObserver) {
|
6903
6944
|
selectObserver.observe($module[0], {
|
6945
|
+
attributes: true,
|
6904
6946
|
childList : true,
|
6905
6947
|
subtree : true
|
6906
6948
|
});
|
@@ -6925,7 +6967,7 @@ $.fn.dropdown = function(parameters) {
|
|
6925
6967
|
|
6926
6968
|
create: {
|
6927
6969
|
id: function() {
|
6928
|
-
id = (Math.random().toString(16) + '000000000').
|
6970
|
+
id = (Math.random().toString(16) + '000000000').slice(2, 10);
|
6929
6971
|
elementNamespace = '.' + id;
|
6930
6972
|
module.verbose('Creating unique id for element', id);
|
6931
6973
|
},
|
@@ -7122,6 +7164,9 @@ $.fn.dropdown = function(parameters) {
|
|
7122
7164
|
module.debug('Disabling dropdown');
|
7123
7165
|
$module.addClass(className.disabled);
|
7124
7166
|
}
|
7167
|
+
if($input.is('[required]')) {
|
7168
|
+
settings.forceSelection = true;
|
7169
|
+
}
|
7125
7170
|
$input
|
7126
7171
|
.removeAttr('required')
|
7127
7172
|
.removeAttr('class')
|
@@ -7326,6 +7371,11 @@ $.fn.dropdown = function(parameters) {
|
|
7326
7371
|
$module
|
7327
7372
|
.on('change' + eventNamespace, selector.input, module.event.change)
|
7328
7373
|
;
|
7374
|
+
if(module.is.multiple() && module.is.searchSelection()) {
|
7375
|
+
$module
|
7376
|
+
.on('paste' + eventNamespace, selector.search, module.event.paste)
|
7377
|
+
;
|
7378
|
+
}
|
7329
7379
|
},
|
7330
7380
|
mouseEvents: function() {
|
7331
7381
|
module.verbose('Binding mouse events');
|
@@ -7545,7 +7595,7 @@ $.fn.dropdown = function(parameters) {
|
|
7545
7595
|
var value = module.is.multiple() ? module.get.values() : module.get.value();
|
7546
7596
|
if (value !== '') {
|
7547
7597
|
module.verbose('Value(s) present after click icon, select value(s) in items');
|
7548
|
-
module.set.selected(value, null,
|
7598
|
+
module.set.selected(value, null, true, true);
|
7549
7599
|
}
|
7550
7600
|
}
|
7551
7601
|
iconClicked = false;
|
@@ -7745,7 +7795,7 @@ $.fn.dropdown = function(parameters) {
|
|
7745
7795
|
menuConfig[fields.values] = values;
|
7746
7796
|
module.setup.menu(menuConfig);
|
7747
7797
|
$.each(values, function(index, item) {
|
7748
|
-
if(item.selected
|
7798
|
+
if(item.selected === true) {
|
7749
7799
|
module.debug('Setting initial selection to', item[fields.value]);
|
7750
7800
|
module.set.selected(item[fields.value]);
|
7751
7801
|
if(!module.is.multiple()) {
|
@@ -7774,6 +7824,15 @@ $.fn.dropdown = function(parameters) {
|
|
7774
7824
|
},
|
7775
7825
|
|
7776
7826
|
event: {
|
7827
|
+
paste: function(event) {
|
7828
|
+
var pasteValue = (event.originalEvent.clipboardData || window.clipboardData).getData('text'),
|
7829
|
+
tokens = pasteValue.split(settings.delimiter)
|
7830
|
+
;
|
7831
|
+
tokens.forEach(function(value){
|
7832
|
+
module.set.selected(module.escape.htmlEntities(value.trim()), null, true, true);
|
7833
|
+
});
|
7834
|
+
event.preventDefault();
|
7835
|
+
},
|
7777
7836
|
change: function() {
|
7778
7837
|
if(!internalChange) {
|
7779
7838
|
module.debug('Input changed, updating selection');
|
@@ -7986,8 +8045,8 @@ $.fn.dropdown = function(parameters) {
|
|
7986
8045
|
},
|
7987
8046
|
select: {
|
7988
8047
|
mutation: function(mutations) {
|
7989
|
-
module.debug('<select> modified, recreating menu');
|
7990
8048
|
if(module.is.selectMutation(mutations)) {
|
8049
|
+
module.debug('<select> modified, recreating menu');
|
7991
8050
|
module.disconnect.selectObserver();
|
7992
8051
|
module.refresh();
|
7993
8052
|
module.setup.select();
|
@@ -8082,7 +8141,7 @@ $.fn.dropdown = function(parameters) {
|
|
8082
8141
|
module.remove.userAddition();
|
8083
8142
|
}
|
8084
8143
|
module.remove.searchTerm();
|
8085
|
-
if(!module.is.focusedOnSearch() &&
|
8144
|
+
if(!module.is.focusedOnSearch() && skipRefocus !== true) {
|
8086
8145
|
module.focusSearch(true);
|
8087
8146
|
}
|
8088
8147
|
}
|
@@ -8214,7 +8273,7 @@ $.fn.dropdown = function(parameters) {
|
|
8214
8273
|
keydown: function(event) {
|
8215
8274
|
var
|
8216
8275
|
pressedKey = event.which,
|
8217
|
-
isShortcutKey = module.is.inObject(pressedKey, keys)
|
8276
|
+
isShortcutKey = module.is.inObject(pressedKey, keys) || event.key === settings.delimiter
|
8218
8277
|
;
|
8219
8278
|
if(isShortcutKey) {
|
8220
8279
|
var
|
@@ -8232,7 +8291,7 @@ $.fn.dropdown = function(parameters) {
|
|
8232
8291
|
hasSubMenu = ($subMenu.length> 0),
|
8233
8292
|
hasSelectedItem = ($selectedItem.length > 0),
|
8234
8293
|
selectedIsSelectable = ($selectedItem.not(selector.unselectable).length > 0),
|
8235
|
-
delimiterPressed = (
|
8294
|
+
delimiterPressed = (event.key === settings.delimiter && module.is.multiple()),
|
8236
8295
|
isAdditionWithoutMenu = (settings.allowAdditions && settings.hideAdditions && (pressedKey == keys.enter || delimiterPressed) && selectedIsSelectable),
|
8237
8296
|
$nextItem,
|
8238
8297
|
isSubMenuItem,
|
@@ -8330,7 +8389,7 @@ $.fn.dropdown = function(parameters) {
|
|
8330
8389
|
.addClass(className.selected)
|
8331
8390
|
;
|
8332
8391
|
module.set.scrollPosition($nextItem);
|
8333
|
-
if(settings.selectOnKeydown && module.is.single()) {
|
8392
|
+
if(settings.selectOnKeydown && module.is.single() && !$nextItem.hasClass(className.actionable)) {
|
8334
8393
|
module.set.selectedItem($nextItem);
|
8335
8394
|
}
|
8336
8395
|
}
|
@@ -8357,7 +8416,7 @@ $.fn.dropdown = function(parameters) {
|
|
8357
8416
|
.addClass(className.selected)
|
8358
8417
|
;
|
8359
8418
|
module.set.scrollPosition($nextItem);
|
8360
|
-
if(settings.selectOnKeydown && module.is.single()) {
|
8419
|
+
if(settings.selectOnKeydown && module.is.single() && !$nextItem.hasClass(className.actionable)) {
|
8361
8420
|
module.set.selectedItem($nextItem);
|
8362
8421
|
}
|
8363
8422
|
}
|
@@ -8488,7 +8547,7 @@ $.fn.dropdown = function(parameters) {
|
|
8488
8547
|
;
|
8489
8548
|
if( module.can.activate( $(element) ) ) {
|
8490
8549
|
module.set.selected(value, $(element));
|
8491
|
-
if(!module.is.multiple()) {
|
8550
|
+
if(!module.is.multiple() && !(!settings.collapseOnActionable && $(element).hasClass(className.actionable))) {
|
8492
8551
|
module.hideAndClear();
|
8493
8552
|
}
|
8494
8553
|
}
|
@@ -8501,7 +8560,7 @@ $.fn.dropdown = function(parameters) {
|
|
8501
8560
|
;
|
8502
8561
|
if( module.can.activate( $(element) ) ) {
|
8503
8562
|
module.set.value(value, text, $(element));
|
8504
|
-
if(!module.is.multiple()) {
|
8563
|
+
if(!module.is.multiple() && !(!settings.collapseOnActionable && $(element).hasClass(className.actionable))) {
|
8505
8564
|
module.hideAndClear();
|
8506
8565
|
}
|
8507
8566
|
}
|
@@ -8552,7 +8611,7 @@ $.fn.dropdown = function(parameters) {
|
|
8552
8611
|
;
|
8553
8612
|
$sizer.text(value);
|
8554
8613
|
// prevent rounding issues
|
8555
|
-
return Math.ceil( $sizer.width() + 1);
|
8614
|
+
return Math.ceil( $sizer.width() + (module.is.edge() ? 3 : 1));
|
8556
8615
|
},
|
8557
8616
|
selectionCount: function() {
|
8558
8617
|
var
|
@@ -9021,7 +9080,7 @@ $.fn.dropdown = function(parameters) {
|
|
9021
9080
|
module.error(error.noStorage);
|
9022
9081
|
return;
|
9023
9082
|
}
|
9024
|
-
name = sessionStorage.getItem(value);
|
9083
|
+
name = sessionStorage.getItem(value + elementNamespace);
|
9025
9084
|
return (name !== undefined)
|
9026
9085
|
? name
|
9027
9086
|
: false
|
@@ -9065,7 +9124,7 @@ $.fn.dropdown = function(parameters) {
|
|
9065
9124
|
return;
|
9066
9125
|
}
|
9067
9126
|
module.verbose('Saving remote data to session storage', value, name);
|
9068
|
-
sessionStorage.setItem(value, name);
|
9127
|
+
sessionStorage.setItem(value + elementNamespace, name);
|
9069
9128
|
}
|
9070
9129
|
},
|
9071
9130
|
|
@@ -9125,7 +9184,7 @@ $.fn.dropdown = function(parameters) {
|
|
9125
9184
|
$nextSelectedItem
|
9126
9185
|
.addClass(className.selected)
|
9127
9186
|
;
|
9128
|
-
if(settings.selectOnKeydown && module.is.single()) {
|
9187
|
+
if(settings.selectOnKeydown && module.is.single() && !$nextItem.hasClass(className.actionable)) {
|
9129
9188
|
module.set.selectedItem($nextSelectedItem);
|
9130
9189
|
}
|
9131
9190
|
$menu
|
@@ -9211,7 +9270,7 @@ $.fn.dropdown = function(parameters) {
|
|
9211
9270
|
var
|
9212
9271
|
length = module.get.query().length
|
9213
9272
|
;
|
9214
|
-
$search.val( text.
|
9273
|
+
$search.val( text.slice(0, length));
|
9215
9274
|
},
|
9216
9275
|
scrollPosition: function($item, forceScroll) {
|
9217
9276
|
var
|
@@ -9328,13 +9387,13 @@ $.fn.dropdown = function(parameters) {
|
|
9328
9387
|
module.set.scrollPosition($nextValue);
|
9329
9388
|
$selectedItem.removeClass(className.selected);
|
9330
9389
|
$nextValue.addClass(className.selected);
|
9331
|
-
if(settings.selectOnKeydown && module.is.single()) {
|
9390
|
+
if(settings.selectOnKeydown && module.is.single() && !$nextItem.hasClass(className.actionable)) {
|
9332
9391
|
module.set.selectedItem($nextValue);
|
9333
9392
|
}
|
9334
9393
|
}
|
9335
9394
|
},
|
9336
9395
|
direction: function($menu) {
|
9337
|
-
if(settings.direction
|
9396
|
+
if(settings.direction === 'auto') {
|
9338
9397
|
// reset position, remove upward if it's base menu
|
9339
9398
|
if (!$menu) {
|
9340
9399
|
module.remove.upward();
|
@@ -9353,7 +9412,7 @@ $.fn.dropdown = function(parameters) {
|
|
9353
9412
|
module.set.leftward($menu);
|
9354
9413
|
}
|
9355
9414
|
}
|
9356
|
-
else if(settings.direction
|
9415
|
+
else if(settings.direction === 'upward') {
|
9357
9416
|
module.set.upward($menu);
|
9358
9417
|
}
|
9359
9418
|
},
|
@@ -9366,6 +9425,11 @@ $.fn.dropdown = function(parameters) {
|
|
9366
9425
|
$element.addClass(className.leftward);
|
9367
9426
|
},
|
9368
9427
|
value: function(value, text, $selected, preventChangeTrigger) {
|
9428
|
+
if(typeof text === 'boolean') {
|
9429
|
+
preventChangeTrigger = text;
|
9430
|
+
$selected = undefined;
|
9431
|
+
text = undefined;
|
9432
|
+
}
|
9369
9433
|
if(value !== undefined && value !== '' && !(Array.isArray(value) && value.length === 0)) {
|
9370
9434
|
$input.removeClass(className.noselection);
|
9371
9435
|
} else {
|
@@ -9429,12 +9493,21 @@ $.fn.dropdown = function(parameters) {
|
|
9429
9493
|
visible: function() {
|
9430
9494
|
$module.addClass(className.visible);
|
9431
9495
|
},
|
9432
|
-
exactly: function(value, $selectedItem) {
|
9496
|
+
exactly: function(value, $selectedItem, preventChangeTrigger) {
|
9497
|
+
if(typeof $selectedItem === 'boolean') {
|
9498
|
+
preventChangeTrigger = $selectedItem;
|
9499
|
+
$selectedItem = undefined;
|
9500
|
+
}
|
9433
9501
|
module.debug('Setting selected to exact values');
|
9434
9502
|
module.clear();
|
9435
|
-
module.set.selected(value, $selectedItem);
|
9503
|
+
module.set.selected(value, $selectedItem, preventChangeTrigger);
|
9436
9504
|
},
|
9437
9505
|
selected: function(value, $selectedItem, preventChangeTrigger, keepSearchTerm) {
|
9506
|
+
if(typeof $selectedItem === 'boolean') {
|
9507
|
+
keepSearchTerm = preventChangeTrigger;
|
9508
|
+
preventChangeTrigger = $selectedItem;
|
9509
|
+
$selectedItem = undefined;
|
9510
|
+
}
|
9438
9511
|
var
|
9439
9512
|
isMultiple = module.is.multiple()
|
9440
9513
|
;
|
@@ -9466,23 +9539,30 @@ $.fn.dropdown = function(parameters) {
|
|
9466
9539
|
|
9467
9540
|
isFiltered = $selected.hasClass(className.filtered),
|
9468
9541
|
isActive = $selected.hasClass(className.active),
|
9542
|
+
isActionable = $selected.hasClass(className.actionable),
|
9469
9543
|
isUserValue = $selected.hasClass(className.addition),
|
9470
|
-
shouldAnimate = (isMultiple && $selectedItem.length
|
9544
|
+
shouldAnimate = (isMultiple && $selectedItem && $selectedItem.length === 1)
|
9471
9545
|
;
|
9472
|
-
if(
|
9546
|
+
if(isActionable){
|
9547
|
+
if((!isMultiple || (!isActive || isUserValue)) && settings.apiSettings && settings.saveRemoteData) {
|
9548
|
+
module.save.remoteData(selectedText, selectedValue);
|
9549
|
+
}
|
9550
|
+
settings.onActionable.call(element, selectedValue, selectedText, $selected);
|
9551
|
+
}
|
9552
|
+
else if(isMultiple) {
|
9473
9553
|
if(!isActive || isUserValue) {
|
9474
9554
|
if(settings.apiSettings && settings.saveRemoteData) {
|
9475
9555
|
module.save.remoteData(selectedText, selectedValue);
|
9476
9556
|
}
|
9477
9557
|
if(settings.useLabels) {
|
9558
|
+
module.add.value(selectedValue, selectedText, $selected, preventChangeTrigger);
|
9478
9559
|
module.add.label(selectedValue, selectedText, shouldAnimate);
|
9479
|
-
module.add.value(selectedValue, selectedText, $selected);
|
9480
9560
|
module.set.activeItem($selected);
|
9481
9561
|
module.filterActive();
|
9482
9562
|
module.select.nextAvailable($selectedItem);
|
9483
9563
|
}
|
9484
9564
|
else {
|
9485
|
-
module.add.value(selectedValue, selectedText, $selected);
|
9565
|
+
module.add.value(selectedValue, selectedText, $selected, preventChangeTrigger);
|
9486
9566
|
module.set.text(module.add.variables(message.count));
|
9487
9567
|
module.set.activeItem($selected);
|
9488
9568
|
}
|
@@ -9496,7 +9576,7 @@ $.fn.dropdown = function(parameters) {
|
|
9496
9576
|
if(settings.apiSettings && settings.saveRemoteData) {
|
9497
9577
|
module.save.remoteData(selectedText, selectedValue);
|
9498
9578
|
}
|
9499
|
-
if (!keepSearchTerm) {
|
9579
|
+
if (!keepSearchTerm && !$selected.hasClass(className.actionable)) {
|
9500
9580
|
module.set.text(selectedText);
|
9501
9581
|
}
|
9502
9582
|
module.set.value(selectedValue, selectedText, $selected, preventChangeTrigger);
|
@@ -9671,7 +9751,12 @@ $.fn.dropdown = function(parameters) {
|
|
9671
9751
|
}
|
9672
9752
|
return message;
|
9673
9753
|
},
|
9674
|
-
value: function(addedValue, addedText, $selectedItem) {
|
9754
|
+
value: function(addedValue, addedText, $selectedItem, preventChangeTrigger) {
|
9755
|
+
if(typeof addedText === 'boolean') {
|
9756
|
+
preventChangeTrigger = addedText;
|
9757
|
+
$selectedItem = undefined;
|
9758
|
+
addedText = undefined;
|
9759
|
+
}
|
9675
9760
|
var
|
9676
9761
|
currentValue = module.get.values(true),
|
9677
9762
|
newValue
|
@@ -9686,7 +9771,7 @@ $.fn.dropdown = function(parameters) {
|
|
9686
9771
|
}
|
9687
9772
|
// extend current array
|
9688
9773
|
if(Array.isArray(currentValue)) {
|
9689
|
-
newValue = currentValue.concat([addedValue]);
|
9774
|
+
newValue = $selectedItem && $selectedItem.hasClass(className.actionable) ? currentValue : currentValue.concat([addedValue]);
|
9690
9775
|
newValue = module.get.uniqueArray(newValue);
|
9691
9776
|
}
|
9692
9777
|
else {
|
@@ -9710,7 +9795,7 @@ $.fn.dropdown = function(parameters) {
|
|
9710
9795
|
else {
|
9711
9796
|
settings.onAdd.call(element, addedValue, addedText, $selectedItem);
|
9712
9797
|
}
|
9713
|
-
module.set.value(newValue, addedText, $selectedItem);
|
9798
|
+
module.set.value(newValue, addedText, $selectedItem, preventChangeTrigger);
|
9714
9799
|
module.check.maxSelections();
|
9715
9800
|
},
|
9716
9801
|
},
|
@@ -9770,18 +9855,10 @@ $.fn.dropdown = function(parameters) {
|
|
9770
9855
|
return;
|
9771
9856
|
}
|
9772
9857
|
// temporarily disconnect observer
|
9773
|
-
|
9774
|
-
selectObserver.disconnect();
|
9775
|
-
module.verbose('Temporarily disconnecting mutation observer');
|
9776
|
-
}
|
9858
|
+
module.disconnect.selectObserver();
|
9777
9859
|
$option.remove();
|
9778
9860
|
module.verbose('Removing user addition as an <option>', escapedValue);
|
9779
|
-
|
9780
|
-
selectObserver.observe($input[0], {
|
9781
|
-
childList : true,
|
9782
|
-
subtree : true
|
9783
|
-
});
|
9784
|
-
}
|
9861
|
+
module.observe.select();
|
9785
9862
|
},
|
9786
9863
|
message: function() {
|
9787
9864
|
$menu.children(selector.message).remove();
|
@@ -10080,8 +10157,11 @@ $.fn.dropdown = function(parameters) {
|
|
10080
10157
|
bubbledIconClick: function(event) {
|
10081
10158
|
return $(event.target).closest($icon).length > 0;
|
10082
10159
|
},
|
10160
|
+
edge: function() {
|
10161
|
+
return !!window.chrome && !!window.StyleMedia;
|
10162
|
+
},
|
10083
10163
|
chrome: function() {
|
10084
|
-
return !!window.chrome &&
|
10164
|
+
return !!window.chrome && !window.StyleMedia;
|
10085
10165
|
},
|
10086
10166
|
alreadySetup: function() {
|
10087
10167
|
return ($module.is('select') && $module.parent(selector.dropdown).data(moduleNamespace) !== undefined && $module.prev().length === 0);
|
@@ -10146,7 +10226,7 @@ $.fn.dropdown = function(parameters) {
|
|
10146
10226
|
selectChanged = false
|
10147
10227
|
;
|
10148
10228
|
$.each(mutations, function(index, mutation) {
|
10149
|
-
if($(mutation.target).is('select') || $(mutation.addedNodes).is('select')) {
|
10229
|
+
if($(mutation.target).is('select, option, optgroup') || $(mutation.addedNodes).is('select')) {
|
10150
10230
|
selectChanged = true;
|
10151
10231
|
return false;
|
10152
10232
|
}
|
@@ -10691,7 +10771,7 @@ $.fn.dropdown.settings = {
|
|
10691
10771
|
keepOnScreen : true, // Whether dropdown should check whether it is on screen before showing
|
10692
10772
|
|
10693
10773
|
match : 'both', // what to match against with search selection (both, text, or label)
|
10694
|
-
fullTextSearch :
|
10774
|
+
fullTextSearch : 'exact', // search anywhere in value (set to 'exact' to require exact matches)
|
10695
10775
|
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...)
|
10696
10776
|
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)
|
10697
10777
|
|
@@ -10699,7 +10779,7 @@ $.fn.dropdown.settings = {
|
|
10699
10779
|
preserveHTML : true, // preserve html when selecting value
|
10700
10780
|
sortSelect : false, // sort selection on init
|
10701
10781
|
|
10702
|
-
forceSelection :
|
10782
|
+
forceSelection : false, // force a choice on blur with search selection
|
10703
10783
|
|
10704
10784
|
allowAdditions : false, // whether multiple select should allow user added values
|
10705
10785
|
ignoreCase : false, // whether to consider case sensitivity when creating labels
|
@@ -10710,7 +10790,7 @@ $.fn.dropdown.settings = {
|
|
10710
10790
|
useLabels : true, // whether multiple select should filter currently active selections from choices
|
10711
10791
|
delimiter : ',', // when multiselect uses normal <input> the values will be delimited with this character
|
10712
10792
|
|
10713
|
-
showOnFocus :
|
10793
|
+
showOnFocus : false, // show menu on focus
|
10714
10794
|
allowReselection : false, // whether current value should trigger callbacks when reselected
|
10715
10795
|
allowTab : true, // add tabindex to element
|
10716
10796
|
allowCategorySelection : false, // allow elements with sub-menus to be selected
|
@@ -10725,6 +10805,8 @@ $.fn.dropdown.settings = {
|
|
10725
10805
|
|
10726
10806
|
headerDivider : true, // whether option headers should have an additional divider line underneath when converted from <select> <optgroup>
|
10727
10807
|
|
10808
|
+
collapseOnActionable : true, // whether the dropdown should collapse upon selection of an actionable item
|
10809
|
+
|
10728
10810
|
// label settings on multi-select
|
10729
10811
|
label: {
|
10730
10812
|
transition : 'scale',
|
@@ -10744,6 +10826,7 @@ $.fn.dropdown.settings = {
|
|
10744
10826
|
onChange : function(value, text, $selected){},
|
10745
10827
|
onAdd : function(value, text, $selected){},
|
10746
10828
|
onRemove : function(value, text, $selected){},
|
10829
|
+
onActionable : function(value, text, $selected){},
|
10747
10830
|
onSearch : function(searchTerm){},
|
10748
10831
|
|
10749
10832
|
onLabelSelect : function($selectedLabels){},
|
@@ -10806,12 +10889,12 @@ $.fn.dropdown.settings = {
|
|
10806
10889
|
icon : 'icon', // optional icon name
|
10807
10890
|
iconClass : 'iconClass', // optional individual class for icon (for example to use flag instead)
|
10808
10891
|
class : 'class', // optional individual class for item/header
|
10809
|
-
divider : 'divider' // optional divider append for group headers
|
10892
|
+
divider : 'divider', // optional divider append for group headers
|
10893
|
+
actionable : 'actionable' // optional actionable item
|
10810
10894
|
},
|
10811
10895
|
|
10812
10896
|
keys : {
|
10813
10897
|
backspace : 8,
|
10814
|
-
delimiter : 188, // comma
|
10815
10898
|
deleteKey : 46,
|
10816
10899
|
enter : 13,
|
10817
10900
|
escape : 27,
|
@@ -10878,7 +10961,8 @@ $.fn.dropdown.settings = {
|
|
10878
10961
|
header : 'header',
|
10879
10962
|
divider : 'divider',
|
10880
10963
|
groupIcon : '',
|
10881
|
-
unfilterable : 'unfilterable'
|
10964
|
+
unfilterable : 'unfilterable',
|
10965
|
+
actionable : 'actionable'
|
10882
10966
|
}
|
10883
10967
|
|
10884
10968
|
};
|
@@ -10953,6 +11037,9 @@ $.fn.dropdown.settings.templates = {
|
|
10953
11037
|
maybeText = (option[fields.text])
|
10954
11038
|
? ' data-text="' + deQuote(option[fields.text],true) + '"'
|
10955
11039
|
: '',
|
11040
|
+
maybeActionable = (option[fields.actionable])
|
11041
|
+
? className.actionable+' '
|
11042
|
+
: '',
|
10956
11043
|
maybeDisabled = (option[fields.disabled])
|
10957
11044
|
? className.disabled+' '
|
10958
11045
|
: '',
|
@@ -10961,7 +11048,7 @@ $.fn.dropdown.settings.templates = {
|
|
10961
11048
|
: '',
|
10962
11049
|
hasDescription = (escape(option[fields.description] || '', preserveHTML) != '')
|
10963
11050
|
;
|
10964
|
-
html += '<div class="'+ maybeDisabled + maybeDescriptionVertical + (option[fields.class] ? deQuote(option[fields.class]) : className.item)+'" data-value="' + deQuote(option[fields.value],true) + '"' + maybeText + '>';
|
11051
|
+
html += '<div class="'+ maybeActionable + maybeDisabled + maybeDescriptionVertical + (option[fields.class] ? deQuote(option[fields.class]) : className.item)+'" data-value="' + deQuote(option[fields.value],true) + '"' + maybeText + '>';
|
10965
11052
|
if (isMenu) {
|
10966
11053
|
html += '<i class="'+ (itemType.indexOf('left') !== -1 ? 'left' : '') + ' dropdown icon"></i>';
|
10967
11054
|
}
|
@@ -11031,7 +11118,7 @@ $.fn.dropdown.settings.templates = {
|
|
11031
11118
|
})( jQuery, window, document );
|
11032
11119
|
|
11033
11120
|
/*!
|
11034
|
-
* # Fomantic-UI 2.9.0-beta.
|
11121
|
+
* # Fomantic-UI 2.9.0-beta.282+54be6de - Embed
|
11035
11122
|
* http://github.com/fomantic/Fomantic-UI/
|
11036
11123
|
*
|
11037
11124
|
*
|
@@ -11741,7 +11828,7 @@ $.fn.embed.settings = {
|
|
11741
11828
|
})( jQuery, window, document );
|
11742
11829
|
|
11743
11830
|
/*!
|
11744
|
-
* # Fomantic-UI 2.9.0-beta.
|
11831
|
+
* # Fomantic-UI 2.9.0-beta.282+54be6de - Modal
|
11745
11832
|
* http://github.com/fomantic/Fomantic-UI/
|
11746
11833
|
*
|
11747
11834
|
*
|
@@ -11808,7 +11895,8 @@ $.fn.modal = function(parameters) {
|
|
11808
11895
|
|
11809
11896
|
$module = $(this),
|
11810
11897
|
$context = $(settings.context),
|
11811
|
-
$
|
11898
|
+
$closeIcon = $module.find(selector.closeIcon),
|
11899
|
+
$inputs,
|
11812
11900
|
|
11813
11901
|
$allModals,
|
11814
11902
|
$otherModals,
|
@@ -11834,6 +11922,7 @@ $.fn.modal = function(parameters) {
|
|
11834
11922
|
module = {
|
11835
11923
|
|
11836
11924
|
initialize: function() {
|
11925
|
+
module.create.id();
|
11837
11926
|
if(!$module.hasClass('modal')) {
|
11838
11927
|
module.create.modal();
|
11839
11928
|
if(!$.isFunction(settings.onHidden)) {
|
@@ -11858,15 +11947,17 @@ $.fn.modal = function(parameters) {
|
|
11858
11947
|
$actions.empty();
|
11859
11948
|
}
|
11860
11949
|
settings.actions.forEach(function (el) {
|
11861
|
-
var icon = el[fields.icon] ? '<i class="' + module.helpers.deQuote(el[fields.icon]) + ' icon"></i>' : '',
|
11950
|
+
var icon = el[fields.icon] ? '<i '+(el[fields.text] ? 'aria-hidden="true"' : '')+' class="' + module.helpers.deQuote(el[fields.icon]) + ' icon"></i>' : '',
|
11862
11951
|
text = module.helpers.escape(el[fields.text] || '', settings.preserveHTML),
|
11863
11952
|
cls = module.helpers.deQuote(el[fields.class] || ''),
|
11864
11953
|
click = el[fields.click] && $.isFunction(el[fields.click]) ? el[fields.click] : function () {};
|
11865
11954
|
$actions.append($('<button/>', {
|
11866
11955
|
html: icon + text,
|
11956
|
+
'aria-label': $('<div>'+(el[fields.text] || el[fields.icon] || '')+'</div>').text(),
|
11867
11957
|
class: className.button + ' ' + cls,
|
11868
11958
|
click: function () {
|
11869
|
-
|
11959
|
+
var button = $(this);
|
11960
|
+
if (button.is(selector.approve) || button.is(selector.deny) || click.call(element, $module) === false) {
|
11870
11961
|
return;
|
11871
11962
|
}
|
11872
11963
|
module.hide();
|
@@ -11877,7 +11968,6 @@ $.fn.modal = function(parameters) {
|
|
11877
11968
|
module.cache = {};
|
11878
11969
|
module.verbose('Initializing dimmer', $context);
|
11879
11970
|
|
11880
|
-
module.create.id();
|
11881
11971
|
module.create.dimmer();
|
11882
11972
|
|
11883
11973
|
if ( settings.allowMultiple ) {
|
@@ -11887,11 +11977,9 @@ $.fn.modal = function(parameters) {
|
|
11887
11977
|
$module.addClass('top aligned');
|
11888
11978
|
}
|
11889
11979
|
module.refreshModals();
|
11890
|
-
|
11980
|
+
module.refreshInputs();
|
11891
11981
|
module.bind.events();
|
11892
|
-
|
11893
|
-
module.observeChanges();
|
11894
|
-
}
|
11982
|
+
module.observeChanges();
|
11895
11983
|
module.instantiate();
|
11896
11984
|
if(settings.autoShow){
|
11897
11985
|
module.show();
|
@@ -11908,16 +11996,20 @@ $.fn.modal = function(parameters) {
|
|
11908
11996
|
|
11909
11997
|
create: {
|
11910
11998
|
modal: function() {
|
11911
|
-
$module = $('<div/>', {class: className.modal});
|
11999
|
+
$module = $('<div/>', {class: className.modal, role: 'dialog', 'aria-modal': true});
|
11912
12000
|
if (settings.closeIcon) {
|
11913
|
-
$
|
11914
|
-
$module.append($
|
12001
|
+
$closeIcon = $('<i/>', {class: className.close, role: 'button', tabindex: 0, 'aria-label': settings.text.close})
|
12002
|
+
$module.append($closeIcon);
|
11915
12003
|
}
|
11916
12004
|
if (settings.title !== '') {
|
11917
|
-
|
12005
|
+
var titleId = '_' + module.get.id() + 'title';
|
12006
|
+
$module.attr('aria-labelledby', titleId);
|
12007
|
+
$('<div/>', {class: className.title, id: titleId}).appendTo($module);
|
11918
12008
|
}
|
11919
12009
|
if (settings.content !== '') {
|
11920
|
-
|
12010
|
+
var descId = '_' + module.get.id() + 'desc';
|
12011
|
+
$module.attr('aria-describedby', descId);
|
12012
|
+
$('<div/>', {class: className.content, id: descId}).appendTo($module);
|
11921
12013
|
}
|
11922
12014
|
if (module.has.configActions()) {
|
11923
12015
|
$('<div/>', {class: className.actions}).appendTo($module);
|
@@ -11948,13 +12040,13 @@ $.fn.modal = function(parameters) {
|
|
11948
12040
|
$dimmer = $dimmable.dimmer('get dimmer');
|
11949
12041
|
},
|
11950
12042
|
id: function() {
|
11951
|
-
id = (Math.random().toString(16) + '000000000').
|
12043
|
+
id = (Math.random().toString(16) + '000000000').slice(2, 10);
|
11952
12044
|
elementEventNamespace = '.' + id;
|
11953
12045
|
module.verbose('Creating unique id for element', id);
|
11954
12046
|
},
|
11955
12047
|
innerDimmer: function() {
|
11956
|
-
if ( $module.find(selector.dimmer).length
|
11957
|
-
$
|
12048
|
+
if ( $module.find(selector.dimmer).length === 0 ) {
|
12049
|
+
$('<div/>', {class: className.innerDimmer}).prependTo($module);
|
11958
12050
|
}
|
11959
12051
|
}
|
11960
12052
|
},
|
@@ -11970,15 +12062,21 @@ $.fn.modal = function(parameters) {
|
|
11970
12062
|
;
|
11971
12063
|
$window.off(elementEventNamespace);
|
11972
12064
|
$dimmer.off(elementEventNamespace);
|
11973
|
-
$
|
12065
|
+
$closeIcon.off(elementEventNamespace);
|
12066
|
+
if($inputs) {
|
12067
|
+
$inputs.off(elementEventNamespace);
|
12068
|
+
}
|
11974
12069
|
$context.dimmer('destroy');
|
11975
12070
|
},
|
11976
12071
|
|
11977
12072
|
observeChanges: function() {
|
11978
12073
|
if('MutationObserver' in window) {
|
11979
12074
|
observer = new MutationObserver(function(mutations) {
|
11980
|
-
|
11981
|
-
|
12075
|
+
if(settings.observeChanges) {
|
12076
|
+
module.debug('DOM tree modified, refreshing');
|
12077
|
+
module.refresh();
|
12078
|
+
}
|
12079
|
+
module.refreshInputs();
|
11982
12080
|
});
|
11983
12081
|
observer.observe(element, {
|
11984
12082
|
childList : true,
|
@@ -12003,6 +12101,23 @@ $.fn.modal = function(parameters) {
|
|
12003
12101
|
$allModals = $otherModals.add($module);
|
12004
12102
|
},
|
12005
12103
|
|
12104
|
+
refreshInputs: function(){
|
12105
|
+
if($inputs){
|
12106
|
+
$inputs
|
12107
|
+
.off('keydown' + elementEventNamespace)
|
12108
|
+
;
|
12109
|
+
}
|
12110
|
+
$inputs = $module.find('[tabindex], :input').filter(':visible').filter(function() {
|
12111
|
+
return $(this).closest('.disabled').length === 0;
|
12112
|
+
});
|
12113
|
+
$inputs.first()
|
12114
|
+
.on('keydown' + elementEventNamespace, module.event.inputKeyDown.first)
|
12115
|
+
;
|
12116
|
+
$inputs.last()
|
12117
|
+
.on('keydown' + elementEventNamespace, module.event.inputKeyDown.last)
|
12118
|
+
;
|
12119
|
+
},
|
12120
|
+
|
12006
12121
|
attachEvents: function(selector, event) {
|
12007
12122
|
var
|
12008
12123
|
$toggle = $(selector)
|
@@ -12031,6 +12146,9 @@ $.fn.modal = function(parameters) {
|
|
12031
12146
|
.on('click' + eventNamespace, selector.approve, module.event.approve)
|
12032
12147
|
.on('click' + eventNamespace, selector.deny, module.event.deny)
|
12033
12148
|
;
|
12149
|
+
$closeIcon
|
12150
|
+
.on('keyup' + elementEventNamespace, module.event.closeKeyUp)
|
12151
|
+
;
|
12034
12152
|
$window
|
12035
12153
|
.on('resize' + elementEventNamespace, module.event.resize)
|
12036
12154
|
;
|
@@ -12049,7 +12167,7 @@ $.fn.modal = function(parameters) {
|
|
12049
12167
|
|
12050
12168
|
get: {
|
12051
12169
|
id: function() {
|
12052
|
-
return
|
12170
|
+
return id;
|
12053
12171
|
},
|
12054
12172
|
element: function() {
|
12055
12173
|
return $module;
|
@@ -12088,10 +12206,38 @@ $.fn.modal = function(parameters) {
|
|
12088
12206
|
close: function() {
|
12089
12207
|
module.hide();
|
12090
12208
|
},
|
12209
|
+
closeKeyUp: function(event){
|
12210
|
+
var
|
12211
|
+
keyCode = event.which
|
12212
|
+
;
|
12213
|
+
if ((keyCode === settings.keys.enter || keyCode === settings.keys.space) && $module.hasClass(className.front)) {
|
12214
|
+
module.hide();
|
12215
|
+
}
|
12216
|
+
},
|
12217
|
+
inputKeyDown: {
|
12218
|
+
first: function(event) {
|
12219
|
+
var
|
12220
|
+
keyCode = event.which
|
12221
|
+
;
|
12222
|
+
if (keyCode === settings.keys.tab && event.shiftKey) {
|
12223
|
+
$inputs.last().focus();
|
12224
|
+
event.preventDefault();
|
12225
|
+
}
|
12226
|
+
},
|
12227
|
+
last: function(event) {
|
12228
|
+
var
|
12229
|
+
keyCode = event.which
|
12230
|
+
;
|
12231
|
+
if (keyCode === settings.keys.tab && !event.shiftKey) {
|
12232
|
+
$inputs.first().focus();
|
12233
|
+
event.preventDefault();
|
12234
|
+
}
|
12235
|
+
}
|
12236
|
+
},
|
12091
12237
|
mousedown: function(event) {
|
12092
12238
|
var
|
12093
12239
|
$target = $(event.target),
|
12094
|
-
isRtl = module.is.rtl()
|
12240
|
+
isRtl = module.is.rtl()
|
12095
12241
|
;
|
12096
12242
|
initialMouseDownInModal = ($target.closest(selector.modal).length > 0);
|
12097
12243
|
if(initialMouseDownInModal) {
|
@@ -12139,10 +12285,9 @@ $.fn.modal = function(parameters) {
|
|
12139
12285
|
},
|
12140
12286
|
keyboard: function(event) {
|
12141
12287
|
var
|
12142
|
-
keyCode = event.which
|
12143
|
-
escapeKey = 27
|
12288
|
+
keyCode = event.which
|
12144
12289
|
;
|
12145
|
-
if(keyCode
|
12290
|
+
if(keyCode === settings.keys.escape) {
|
12146
12291
|
if(settings.closable) {
|
12147
12292
|
module.debug('Escape key pressed hiding modal');
|
12148
12293
|
if ( $module.hasClass(className.front) ) {
|
@@ -12198,6 +12343,10 @@ $.fn.modal = function(parameters) {
|
|
12198
12343
|
: function(){}
|
12199
12344
|
;
|
12200
12345
|
if( module.is.animating() || !module.is.active() ) {
|
12346
|
+
if(settings.onShow.call(element) === false) {
|
12347
|
+
module.verbose('Show callback returned false cancelling show');
|
12348
|
+
return;
|
12349
|
+
}
|
12201
12350
|
module.showDimmer();
|
12202
12351
|
module.cacheSizes();
|
12203
12352
|
module.set.bodyMargin();
|
@@ -12227,7 +12376,6 @@ $.fn.modal = function(parameters) {
|
|
12227
12376
|
$module.detach().appendTo($dimmer);
|
12228
12377
|
}
|
12229
12378
|
}
|
12230
|
-
settings.onShow.call(element);
|
12231
12379
|
if(settings.transition && $.fn.transition !== undefined && $module.transition('is supported')) {
|
12232
12380
|
module.debug('Showing modal with css animations');
|
12233
12381
|
$module
|
@@ -12270,7 +12418,6 @@ $.fn.modal = function(parameters) {
|
|
12270
12418
|
? callback
|
12271
12419
|
: function(){}
|
12272
12420
|
;
|
12273
|
-
module.debug('Hiding modal');
|
12274
12421
|
if(settings.onHide.call(element, $(this)) === false) {
|
12275
12422
|
module.verbose('Hide callback returned false cancelling hide');
|
12276
12423
|
ignoreRepeatedEvents = false;
|
@@ -12278,6 +12425,7 @@ $.fn.modal = function(parameters) {
|
|
12278
12425
|
}
|
12279
12426
|
|
12280
12427
|
if( module.is.animating() || module.is.active() ) {
|
12428
|
+
module.debug('Hiding modal');
|
12281
12429
|
if(settings.transition && $.fn.transition !== undefined && $module.transition('is supported')) {
|
12282
12430
|
module.remove.active();
|
12283
12431
|
$module
|
@@ -12457,7 +12605,7 @@ $.fn.modal = function(parameters) {
|
|
12457
12605
|
$module
|
12458
12606
|
.off('mousedown' + elementEventNamespace)
|
12459
12607
|
;
|
12460
|
-
}
|
12608
|
+
}
|
12461
12609
|
$dimmer
|
12462
12610
|
.off('mousedown' + elementEventNamespace)
|
12463
12611
|
;
|
@@ -12642,13 +12790,10 @@ $.fn.modal = function(parameters) {
|
|
12642
12790
|
set: {
|
12643
12791
|
autofocus: function() {
|
12644
12792
|
var
|
12645
|
-
$inputs = $module.find('[tabindex], :input').filter(':visible').filter(function() {
|
12646
|
-
return $(this).closest('.disabled').length === 0;
|
12647
|
-
}),
|
12648
12793
|
$autofocus = $inputs.filter('[autofocus]'),
|
12649
12794
|
$input = ($autofocus.length > 0)
|
12650
12795
|
? $autofocus.first()
|
12651
|
-
: $inputs.first()
|
12796
|
+
: ($inputs.length > 1 ? $inputs.filter(':not(i.close)') : $inputs).first()
|
12652
12797
|
;
|
12653
12798
|
if($input.length > 0) {
|
12654
12799
|
$input.focus();
|
@@ -12730,7 +12875,7 @@ $.fn.modal = function(parameters) {
|
|
12730
12875
|
? $(document).scrollTop() + settings.padding
|
12731
12876
|
: $(document).scrollTop() + (module.cache.contextHeight - module.cache.height - settings.padding),
|
12732
12877
|
marginLeft: -(module.cache.width / 2)
|
12733
|
-
})
|
12878
|
+
})
|
12734
12879
|
;
|
12735
12880
|
} else {
|
12736
12881
|
$module
|
@@ -12739,7 +12884,7 @@ $.fn.modal = function(parameters) {
|
|
12739
12884
|
? -(module.cache.height / 2)
|
12740
12885
|
: settings.padding / 2,
|
12741
12886
|
marginLeft: -(module.cache.width / 2)
|
12742
|
-
})
|
12887
|
+
})
|
12743
12888
|
;
|
12744
12889
|
}
|
12745
12890
|
module.verbose('Setting modal offset for legacy mode');
|
@@ -13065,11 +13210,19 @@ $.fn.modal.settings = {
|
|
13065
13210
|
// called after deny selector match
|
13066
13211
|
onDeny : function(){ return true; },
|
13067
13212
|
|
13213
|
+
keys : {
|
13214
|
+
space : 32,
|
13215
|
+
enter : 13,
|
13216
|
+
escape : 27,
|
13217
|
+
tab : 9,
|
13218
|
+
},
|
13219
|
+
|
13068
13220
|
selector : {
|
13069
13221
|
title : '> .header',
|
13070
13222
|
content : '> .content',
|
13071
13223
|
actions : '> .actions',
|
13072
13224
|
close : '> .close',
|
13225
|
+
closeIcon: '> .close',
|
13073
13226
|
approve : '.actions .positive, .actions .approve, .actions .ok',
|
13074
13227
|
deny : '.actions .negative, .actions .deny, .actions .cancel',
|
13075
13228
|
modal : '.ui.modal',
|
@@ -13101,11 +13254,13 @@ $.fn.modal.settings = {
|
|
13101
13254
|
template : 'ui tiny modal',
|
13102
13255
|
ok : 'positive',
|
13103
13256
|
cancel : 'negative',
|
13104
|
-
prompt : 'ui fluid input'
|
13257
|
+
prompt : 'ui fluid input',
|
13258
|
+
innerDimmer: 'ui inverted dimmer'
|
13105
13259
|
},
|
13106
13260
|
text: {
|
13107
13261
|
ok : 'Ok',
|
13108
|
-
cancel: 'Cancel'
|
13262
|
+
cancel: 'Cancel',
|
13263
|
+
close : 'Close'
|
13109
13264
|
}
|
13110
13265
|
};
|
13111
13266
|
|
@@ -13131,33 +13286,39 @@ $.fn.modal.settings.templates = {
|
|
13131
13286
|
},
|
13132
13287
|
alert: function () {
|
13133
13288
|
var settings = this.get.settings(),
|
13134
|
-
args = settings.templates.getArguments(arguments)
|
13289
|
+
args = settings.templates.getArguments(arguments),
|
13290
|
+
approveFn = args.handler
|
13135
13291
|
;
|
13136
13292
|
return {
|
13137
13293
|
title : args.title,
|
13138
13294
|
content: args.content,
|
13295
|
+
onApprove: approveFn,
|
13139
13296
|
actions: [{
|
13140
13297
|
text : settings.text.ok,
|
13141
13298
|
class: settings.className.ok,
|
13142
|
-
click:
|
13299
|
+
click: approveFn
|
13143
13300
|
}]
|
13144
13301
|
}
|
13145
13302
|
},
|
13146
13303
|
confirm: function () {
|
13147
13304
|
var settings = this.get.settings(),
|
13148
|
-
args = settings.templates.getArguments(arguments)
|
13305
|
+
args = settings.templates.getArguments(arguments),
|
13306
|
+
approveFn = function(){args.handler(true)},
|
13307
|
+
denyFn = function(){args.handler(false)}
|
13149
13308
|
;
|
13150
13309
|
return {
|
13151
13310
|
title : args.title,
|
13152
13311
|
content: args.content,
|
13312
|
+
onApprove: approveFn,
|
13313
|
+
onDeny: denyFn,
|
13153
13314
|
actions: [{
|
13154
13315
|
text : settings.text.ok,
|
13155
13316
|
class: settings.className.ok,
|
13156
|
-
click:
|
13317
|
+
click: approveFn
|
13157
13318
|
},{
|
13158
13319
|
text: settings.text.cancel,
|
13159
13320
|
class: settings.className.cancel,
|
13160
|
-
click:
|
13321
|
+
click: denyFn
|
13161
13322
|
}]
|
13162
13323
|
}
|
13163
13324
|
},
|
@@ -13165,7 +13326,14 @@ $.fn.modal.settings.templates = {
|
|
13165
13326
|
var $this = this,
|
13166
13327
|
settings = this.get.settings(),
|
13167
13328
|
args = settings.templates.getArguments(arguments),
|
13168
|
-
input = $($.parseHTML(args.content)).filter('.ui.input')
|
13329
|
+
input = $($.parseHTML(args.content)).filter('.ui.input'),
|
13330
|
+
approveFn = function(){
|
13331
|
+
var settings = $this.get.settings(),
|
13332
|
+
inputField = $this.get.element().find(settings.selector.prompt)[0]
|
13333
|
+
;
|
13334
|
+
args.handler($(inputField).val());
|
13335
|
+
},
|
13336
|
+
denyFn = function(){args.handler(null)}
|
13169
13337
|
;
|
13170
13338
|
if (input.length === 0) {
|
13171
13339
|
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>';
|
@@ -13173,19 +13341,16 @@ $.fn.modal.settings.templates = {
|
|
13173
13341
|
return {
|
13174
13342
|
title : args.title,
|
13175
13343
|
content: args.content,
|
13344
|
+
onApprove: approveFn,
|
13345
|
+
onDeny: denyFn,
|
13176
13346
|
actions: [{
|
13177
13347
|
text: settings.text.ok,
|
13178
13348
|
class: settings.className.ok,
|
13179
|
-
click:
|
13180
|
-
var settings = $this.get.settings(),
|
13181
|
-
inputField = $this.get.element().find(settings.selector.prompt)[0]
|
13182
|
-
;
|
13183
|
-
args.handler($(inputField).val());
|
13184
|
-
}
|
13349
|
+
click: approveFn
|
13185
13350
|
},{
|
13186
13351
|
text: settings.text.cancel,
|
13187
13352
|
class: settings.className.cancel,
|
13188
|
-
click:
|
13353
|
+
click: denyFn
|
13189
13354
|
}]
|
13190
13355
|
}
|
13191
13356
|
}
|
@@ -13194,7 +13359,7 @@ $.fn.modal.settings.templates = {
|
|
13194
13359
|
})( jQuery, window, document );
|
13195
13360
|
|
13196
13361
|
/*!
|
13197
|
-
* # Fomantic-UI 2.9.0-beta.
|
13362
|
+
* # Fomantic-UI 2.9.0-beta.282+54be6de - Nag
|
13198
13363
|
* http://github.com/fomantic/Fomantic-UI/
|
13199
13364
|
*
|
13200
13365
|
*
|
@@ -13753,7 +13918,7 @@ $.extend( $.easing, {
|
|
13753
13918
|
})( jQuery, window, document );
|
13754
13919
|
|
13755
13920
|
/*!
|
13756
|
-
* # Fomantic-UI 2.9.0-beta.
|
13921
|
+
* # Fomantic-UI 2.9.0-beta.282+54be6de - Popup
|
13757
13922
|
* http://github.com/fomantic/Fomantic-UI/
|
13758
13923
|
*
|
13759
13924
|
*
|
@@ -14063,7 +14228,7 @@ $.fn.popup = function(parameters) {
|
|
14063
14228
|
},
|
14064
14229
|
|
14065
14230
|
createID: function() {
|
14066
|
-
id = (Math.random().toString(16) + '000000000').
|
14231
|
+
id = (Math.random().toString(16) + '000000000').slice(2, 10);
|
14067
14232
|
elementNamespace = '.' + id;
|
14068
14233
|
module.verbose('Creating unique id for element', id);
|
14069
14234
|
},
|
@@ -15295,7 +15460,7 @@ $.fn.popup.settings = {
|
|
15295
15460
|
})( jQuery, window, document );
|
15296
15461
|
|
15297
15462
|
/*!
|
15298
|
-
* # Fomantic-UI 2.9.0-beta.
|
15463
|
+
* # Fomantic-UI 2.9.0-beta.282+54be6de - Progress
|
15299
15464
|
* http://github.com/fomantic/Fomantic-UI/
|
15300
15465
|
*
|
15301
15466
|
*
|
@@ -15903,6 +16068,9 @@ $.fn.progress = function(parameters) {
|
|
15903
16068
|
}
|
15904
16069
|
else {
|
15905
16070
|
module.remove.active();
|
16071
|
+
module.remove.warning();
|
16072
|
+
module.remove.error();
|
16073
|
+
module.remove.success();
|
15906
16074
|
module.set.label(settings.text.active);
|
15907
16075
|
}
|
15908
16076
|
},
|
@@ -16329,7 +16497,7 @@ $.fn.progress.settings = {
|
|
16329
16497
|
})( jQuery, window, document );
|
16330
16498
|
|
16331
16499
|
/*!
|
16332
|
-
* # Fomantic-UI 2.9.0-beta.
|
16500
|
+
* # Fomantic-UI 2.9.0-beta.282+54be6de - Slider
|
16333
16501
|
* http://github.com/fomantic/Fomantic-UI/
|
16334
16502
|
*
|
16335
16503
|
*
|
@@ -16400,6 +16568,7 @@ $.fn.slider = function(parameters) {
|
|
16400
16568
|
|
16401
16569
|
$module = $(this),
|
16402
16570
|
$currThumb,
|
16571
|
+
touchIdentifier,
|
16403
16572
|
$thumb,
|
16404
16573
|
$secondThumb,
|
16405
16574
|
$track,
|
@@ -16416,7 +16585,6 @@ $.fn.slider = function(parameters) {
|
|
16416
16585
|
secondPos,
|
16417
16586
|
offset,
|
16418
16587
|
precision,
|
16419
|
-
isTouch,
|
16420
16588
|
gapRatio = 1,
|
16421
16589
|
previousValue,
|
16422
16590
|
|
@@ -16434,7 +16602,6 @@ $.fn.slider = function(parameters) {
|
|
16434
16602
|
currentRange += 1;
|
16435
16603
|
documentEventID = currentRange;
|
16436
16604
|
|
16437
|
-
isTouch = module.setup.testOutTouch();
|
16438
16605
|
module.setup.layout();
|
16439
16606
|
module.setup.labels();
|
16440
16607
|
|
@@ -16505,14 +16672,6 @@ $.fn.slider = function(parameters) {
|
|
16505
16672
|
}
|
16506
16673
|
}
|
16507
16674
|
},
|
16508
|
-
testOutTouch: function() {
|
16509
|
-
try {
|
16510
|
-
document.createEvent('TouchEvent');
|
16511
|
-
return true;
|
16512
|
-
} catch (e) {
|
16513
|
-
return false;
|
16514
|
-
}
|
16515
|
-
},
|
16516
16675
|
customLabel: function() {
|
16517
16676
|
var
|
16518
16677
|
$children = $labels.find('.label'),
|
@@ -16566,9 +16725,6 @@ $.fn.slider = function(parameters) {
|
|
16566
16725
|
module.bind.globalKeyboardEvents();
|
16567
16726
|
module.bind.keyboardEvents();
|
16568
16727
|
module.bind.mouseEvents();
|
16569
|
-
if(module.is.touch()) {
|
16570
|
-
module.bind.touchEvents();
|
16571
|
-
}
|
16572
16728
|
if (settings.autoAdjustLabels) {
|
16573
16729
|
module.bind.windowEvents();
|
16574
16730
|
}
|
@@ -16581,7 +16737,7 @@ $.fn.slider = function(parameters) {
|
|
16581
16737
|
$(document).on('keydown' + eventNamespace + documentEventID, module.event.activateFocus);
|
16582
16738
|
},
|
16583
16739
|
mouseEvents: function() {
|
16584
|
-
module.verbose('Binding mouse events');
|
16740
|
+
module.verbose('Binding mouse and touch events');
|
16585
16741
|
$module.find('.track, .thumb, .inner').on('mousedown' + eventNamespace, function(event) {
|
16586
16742
|
event.stopImmediatePropagation();
|
16587
16743
|
event.preventDefault();
|
@@ -16594,27 +16750,20 @@ $.fn.slider = function(parameters) {
|
|
16594
16750
|
$module.on('mouseleave' + eventNamespace, function(event) {
|
16595
16751
|
isHover = false;
|
16596
16752
|
});
|
16597
|
-
|
16598
|
-
|
16599
|
-
|
16600
|
-
$module.find('.
|
16601
|
-
event.
|
16602
|
-
event.
|
16603
|
-
module.event.
|
16604
|
-
|
16605
|
-
$module.on('touchstart' + eventNamespace, module.event.down);
|
16753
|
+
// All touch events are invoked on the element where the touch *started*. Thus, we can bind them all
|
16754
|
+
// on the thumb(s) and don't need to worry about interference with other components, i.e. no dynamic binding
|
16755
|
+
// and unbinding required.
|
16756
|
+
$module.find('.thumb')
|
16757
|
+
.on('touchstart' + eventNamespace, module.event.touchDown)
|
16758
|
+
.on('touchmove' + eventNamespace, module.event.move)
|
16759
|
+
.on('touchend' + eventNamespace, module.event.up)
|
16760
|
+
.on('touchcancel' + eventNamespace, module.event.touchCancel);
|
16606
16761
|
},
|
16607
16762
|
slidingEvents: function() {
|
16608
16763
|
// these don't need the identifier because we only ever want one of them to be registered with document
|
16609
16764
|
module.verbose('Binding page wide events while handle is being draged');
|
16610
|
-
|
16611
|
-
|
16612
|
-
$(document).on('touchend' + eventNamespace, module.event.up);
|
16613
|
-
}
|
16614
|
-
else {
|
16615
|
-
$(document).on('mousemove' + eventNamespace, module.event.move);
|
16616
|
-
$(document).on('mouseup' + eventNamespace, module.event.up);
|
16617
|
-
}
|
16765
|
+
$(document).on('mousemove' + eventNamespace, module.event.move);
|
16766
|
+
$(document).on('mouseup' + eventNamespace, module.event.up);
|
16618
16767
|
},
|
16619
16768
|
windowEvents: function() {
|
16620
16769
|
$window.on('resize' + eventNamespace, module.event.resize);
|
@@ -16624,24 +16773,22 @@ $.fn.slider = function(parameters) {
|
|
16624
16773
|
unbind: {
|
16625
16774
|
events: function() {
|
16626
16775
|
$module.find('.track, .thumb, .inner').off('mousedown' + eventNamespace);
|
16627
|
-
$module.find('.track, .thumb, .inner').off('touchstart' + eventNamespace);
|
16628
16776
|
$module.off('mousedown' + eventNamespace);
|
16629
16777
|
$module.off('mouseenter' + eventNamespace);
|
16630
16778
|
$module.off('mouseleave' + eventNamespace);
|
16631
|
-
$module.
|
16779
|
+
$module.find('.thumb')
|
16780
|
+
.off('touchstart' + eventNamespace)
|
16781
|
+
.off('touchmove' + eventNamespace)
|
16782
|
+
.off('touchend' + eventNamespace)
|
16783
|
+
.off('touchcancel' + eventNamespace);
|
16632
16784
|
$module.off('keydown' + eventNamespace);
|
16633
16785
|
$module.off('focusout' + eventNamespace);
|
16634
16786
|
$(document).off('keydown' + eventNamespace + documentEventID, module.event.activateFocus);
|
16635
16787
|
$window.off('resize' + eventNamespace);
|
16636
16788
|
},
|
16637
16789
|
slidingEvents: function() {
|
16638
|
-
|
16639
|
-
|
16640
|
-
$(document).off('touchend' + eventNamespace);
|
16641
|
-
} else {
|
16642
|
-
$(document).off('mousemove' + eventNamespace);
|
16643
|
-
$(document).off('mouseup' + eventNamespace);
|
16644
|
-
}
|
16790
|
+
$(document).off('mousemove' + eventNamespace);
|
16791
|
+
$(document).off('mouseup' + eventNamespace);
|
16645
16792
|
},
|
16646
16793
|
},
|
16647
16794
|
|
@@ -16671,10 +16818,31 @@ $.fn.slider = function(parameters) {
|
|
16671
16818
|
module.bind.slidingEvents();
|
16672
16819
|
}
|
16673
16820
|
},
|
16821
|
+
touchDown: function(event) {
|
16822
|
+
event.preventDefault(); // disable mouse emulation and touch-scrolling
|
16823
|
+
event.stopImmediatePropagation();
|
16824
|
+
if(touchIdentifier !== undefined) {
|
16825
|
+
// ignore multiple touches on the same slider --
|
16826
|
+
// we cannot handle changing both thumbs at once due to shared state
|
16827
|
+
return;
|
16828
|
+
}
|
16829
|
+
$currThumb = $(event.target);
|
16830
|
+
var touchEvent = event.touches ? event : event.originalEvent;
|
16831
|
+
touchIdentifier = touchEvent.targetTouches[0].identifier;
|
16832
|
+
if(previousValue === undefined) {
|
16833
|
+
previousValue = module.get.currentThumbValue();
|
16834
|
+
}
|
16835
|
+
},
|
16674
16836
|
move: function(event) {
|
16675
|
-
event.
|
16837
|
+
if(event.type == 'mousemove') {
|
16838
|
+
event.preventDefault(); // prevent text selection etc.
|
16839
|
+
}
|
16840
|
+
if(module.is.disabled()) {
|
16841
|
+
// touch events are always bound, so we need to prevent touch-sliding on disabled sliders here
|
16842
|
+
return;
|
16843
|
+
}
|
16676
16844
|
var value = module.determine.valueFromEvent(event);
|
16677
|
-
if($currThumb === undefined) {
|
16845
|
+
if(event.type == 'mousemove' && $currThumb === undefined) {
|
16678
16846
|
var
|
16679
16847
|
eventPos = module.determine.eventPos(event),
|
16680
16848
|
newPos = module.determine.pos(eventPos)
|
@@ -16711,10 +16879,23 @@ $.fn.slider = function(parameters) {
|
|
16711
16879
|
},
|
16712
16880
|
up: function(event) {
|
16713
16881
|
event.preventDefault();
|
16882
|
+
if(module.is.disabled()) {
|
16883
|
+
// touch events are always bound, so we need to prevent touch-sliding on disabled sliders here
|
16884
|
+
return;
|
16885
|
+
}
|
16714
16886
|
var value = module.determine.valueFromEvent(event);
|
16715
16887
|
module.set.value(value);
|
16716
16888
|
module.unbind.slidingEvents();
|
16889
|
+
touchIdentifier = undefined;
|
16890
|
+
if (previousValue !== undefined) {
|
16891
|
+
previousValue = undefined;
|
16892
|
+
}
|
16893
|
+
},
|
16894
|
+
touchCancel: function(event) {
|
16895
|
+
event.preventDefault();
|
16896
|
+
touchIdentifier = undefined;
|
16717
16897
|
if (previousValue !== undefined) {
|
16898
|
+
module.update.value(previousValue);
|
16718
16899
|
previousValue = undefined;
|
16719
16900
|
}
|
16720
16901
|
},
|
@@ -16830,9 +17011,6 @@ $.fn.slider = function(parameters) {
|
|
16830
17011
|
},
|
16831
17012
|
smooth: function() {
|
16832
17013
|
return settings.smooth || $module.hasClass(settings.className.smooth);
|
16833
|
-
},
|
16834
|
-
touch: function() {
|
16835
|
-
return isTouch;
|
16836
17014
|
}
|
16837
17015
|
},
|
16838
17016
|
|
@@ -17096,12 +17274,19 @@ $.fn.slider = function(parameters) {
|
|
17096
17274
|
return value;
|
17097
17275
|
},
|
17098
17276
|
eventPos: function(event) {
|
17099
|
-
if(
|
17277
|
+
if(event.type === "touchmove" || event.type === "touchend") {
|
17278
|
+
var
|
17279
|
+
touchEvent = event.touches ? event : event.originalEvent,
|
17280
|
+
touch = touchEvent.changedTouches[0]; // fall back to first touch if correct touch not found
|
17281
|
+
for(var i=0; i < touchEvent.touches.length; i++) {
|
17282
|
+
if(touchEvent.touches[i].identifier === touchIdentifier) {
|
17283
|
+
touch = touchEvent.touches[i];
|
17284
|
+
break;
|
17285
|
+
}
|
17286
|
+
}
|
17100
17287
|
var
|
17101
|
-
|
17102
|
-
|
17103
|
-
touchY = touches[0].pageY,
|
17104
|
-
touchX = touches[0].pageX
|
17288
|
+
touchY = touch.pageY,
|
17289
|
+
touchX = touch.pageX
|
17105
17290
|
;
|
17106
17291
|
return module.is.vertical() ? touchY : touchX;
|
17107
17292
|
}
|
@@ -17668,7 +17853,7 @@ $.fn.slider.settings = {
|
|
17668
17853
|
})( jQuery, window, document );
|
17669
17854
|
|
17670
17855
|
/*!
|
17671
|
-
* # Fomantic-UI 2.9.0-beta.
|
17856
|
+
* # Fomantic-UI 2.9.0-beta.282+54be6de - Rating
|
17672
17857
|
* http://github.com/fomantic/Fomantic-UI/
|
17673
17858
|
*
|
17674
17859
|
*
|
@@ -18223,7 +18408,7 @@ $.fn.rating.settings = {
|
|
18223
18408
|
})( jQuery, window, document );
|
18224
18409
|
|
18225
18410
|
/*!
|
18226
|
-
* # Fomantic-UI 2.9.0-beta.
|
18411
|
+
* # Fomantic-UI 2.9.0-beta.282+54be6de - Search
|
18227
18412
|
* http://github.com/fomantic/Fomantic-UI/
|
18228
18413
|
*
|
18229
18414
|
*
|
@@ -18627,7 +18812,7 @@ $.fn.search = function(parameters) {
|
|
18627
18812
|
return $results.hasClass(className.animating);
|
18628
18813
|
},
|
18629
18814
|
chrome: function() {
|
18630
|
-
return !!window.chrome &&
|
18815
|
+
return !!window.chrome && !window.StyleMedia;
|
18631
18816
|
},
|
18632
18817
|
hidden: function() {
|
18633
18818
|
return $results.hasClass(className.hidden);
|
@@ -19791,7 +19976,7 @@ $.fn.search.settings = {
|
|
19791
19976
|
})( jQuery, window, document );
|
19792
19977
|
|
19793
19978
|
/*!
|
19794
|
-
* # Fomantic-UI 2.9.0-beta.
|
19979
|
+
* # Fomantic-UI 2.9.0-beta.282+54be6de - Shape
|
19795
19980
|
* http://github.com/fomantic/Fomantic-UI/
|
19796
19981
|
*
|
19797
19982
|
*
|
@@ -19918,7 +20103,7 @@ $.fn.shape = function(parameters) {
|
|
19918
20103
|
module.reset();
|
19919
20104
|
module.set.active();
|
19920
20105
|
};
|
19921
|
-
settings.
|
20106
|
+
settings.onBeforeChange.call($nextSide[0]);
|
19922
20107
|
if(module.get.transitionEvent()) {
|
19923
20108
|
module.verbose('Starting CSS animation');
|
19924
20109
|
$module
|
@@ -20605,7 +20790,7 @@ $.fn.shape.settings = {
|
|
20605
20790
|
height: 'initial',
|
20606
20791
|
|
20607
20792
|
// callback occurs on side change
|
20608
|
-
|
20793
|
+
onBeforeChange : function() {},
|
20609
20794
|
onChange : function() {},
|
20610
20795
|
|
20611
20796
|
// allow animation to same side
|
@@ -20640,7 +20825,7 @@ $.fn.shape.settings = {
|
|
20640
20825
|
})( jQuery, window, document );
|
20641
20826
|
|
20642
20827
|
/*!
|
20643
|
-
* # Fomantic-UI 2.9.0-beta.
|
20828
|
+
* # Fomantic-UI 2.9.0-beta.282+54be6de - Sidebar
|
20644
20829
|
* http://github.com/fomantic/Fomantic-UI/
|
20645
20830
|
*
|
20646
20831
|
*
|
@@ -20759,7 +20944,7 @@ $.fn.sidebar = function(parameters) {
|
|
20759
20944
|
|
20760
20945
|
create: {
|
20761
20946
|
id: function() {
|
20762
|
-
id = (Math.random().toString(16) + '000000000').
|
20947
|
+
id = (Math.random().toString(16) + '000000000').slice(2, 10);
|
20763
20948
|
elementNamespace = '.' + id;
|
20764
20949
|
module.verbose('Creating unique id for element', id);
|
20765
20950
|
}
|
@@ -20902,7 +21087,7 @@ $.fn.sidebar = function(parameters) {
|
|
20902
21087
|
if(direction === 'left' || direction === 'right') {
|
20903
21088
|
module.debug('Adding CSS rules for animation distance', width);
|
20904
21089
|
style += ''
|
20905
|
-
+ ' body.pushable > .ui.visible.' + direction + '.sidebar ~ .pusher
|
21090
|
+
+ ' body.pushable > .ui.visible.' + direction + '.sidebar ~ .pusher::after {'
|
20906
21091
|
+ ' -webkit-transform: translate3d('+ distance[direction] + 'px, 0, 0);'
|
20907
21092
|
+ ' transform: translate3d('+ distance[direction] + 'px, 0, 0);'
|
20908
21093
|
+ ' }'
|
@@ -20910,7 +21095,7 @@ $.fn.sidebar = function(parameters) {
|
|
20910
21095
|
}
|
20911
21096
|
else if(direction === 'top' || direction == 'bottom') {
|
20912
21097
|
style += ''
|
20913
|
-
+ ' body.pushable > .ui.visible.' + direction + '.sidebar ~ .pusher
|
21098
|
+
+ ' body.pushable > .ui.visible.' + direction + '.sidebar ~ .pusher::after {'
|
20914
21099
|
+ ' -webkit-transform: translate3d(0, ' + distance[direction] + 'px, 0);'
|
20915
21100
|
+ ' transform: translate3d(0, ' + distance[direction] + 'px, 0);'
|
20916
21101
|
+ ' }'
|
@@ -20918,8 +21103,8 @@ $.fn.sidebar = function(parameters) {
|
|
20918
21103
|
}
|
20919
21104
|
/* opposite sides visible forces content overlay */
|
20920
21105
|
style += ''
|
20921
|
-
+ ' body.pushable > .ui.visible.left.sidebar ~ .ui.visible.right.sidebar ~ .pusher
|
20922
|
-
+ ' body.pushable > .ui.visible.right.sidebar ~ .ui.visible.left.sidebar ~ .pusher
|
21106
|
+
+ ' body.pushable > .ui.visible.left.sidebar ~ .ui.visible.right.sidebar ~ .pusher::after,'
|
21107
|
+
+ ' body.pushable > .ui.visible.right.sidebar ~ .ui.visible.left.sidebar ~ .pusher::after {'
|
20923
21108
|
+ ' -webkit-transform: translate3d(0, 0, 0);'
|
20924
21109
|
+ ' transform: translate3d(0, 0, 0);'
|
20925
21110
|
+ ' }'
|
@@ -21012,6 +21197,10 @@ $.fn.sidebar = function(parameters) {
|
|
21012
21197
|
: function(){}
|
21013
21198
|
;
|
21014
21199
|
if(module.is.hidden()) {
|
21200
|
+
if(settings.onShow.call(element) === false) {
|
21201
|
+
module.verbose('Show callback returned false cancelling show');
|
21202
|
+
return;
|
21203
|
+
}
|
21015
21204
|
module.refreshSidebars();
|
21016
21205
|
if(settings.overlay) {
|
21017
21206
|
module.error(error.overlay);
|
@@ -21036,10 +21225,9 @@ $.fn.sidebar = function(parameters) {
|
|
21036
21225
|
}
|
21037
21226
|
module.pushPage(function() {
|
21038
21227
|
callback.call(element);
|
21039
|
-
settings.
|
21228
|
+
settings.onVisible.call(element);
|
21040
21229
|
});
|
21041
21230
|
settings.onChange.call(element);
|
21042
|
-
settings.onVisible.call(element);
|
21043
21231
|
}
|
21044
21232
|
else {
|
21045
21233
|
module.debug('Sidebar is already visible');
|
@@ -21051,7 +21239,7 @@ $.fn.sidebar = function(parameters) {
|
|
21051
21239
|
? callback
|
21052
21240
|
: function(){}
|
21053
21241
|
;
|
21054
|
-
if(module.is.visible() || module.is.animating()) {
|
21242
|
+
if((module.is.visible() || module.is.animating()) && settings.onHide.call(element) !== false) {
|
21055
21243
|
module.debug('Hiding sidebar', callback);
|
21056
21244
|
module.refreshSidebars();
|
21057
21245
|
module.pullPage(function() {
|
@@ -21059,7 +21247,6 @@ $.fn.sidebar = function(parameters) {
|
|
21059
21247
|
settings.onHidden.call(element);
|
21060
21248
|
});
|
21061
21249
|
settings.onChange.call(element);
|
21062
|
-
settings.onHide.call(element);
|
21063
21250
|
}
|
21064
21251
|
},
|
21065
21252
|
|
@@ -21677,7 +21864,7 @@ $.fn.sidebar.settings = {
|
|
21677
21864
|
})( jQuery, window, document );
|
21678
21865
|
|
21679
21866
|
/*!
|
21680
|
-
* # Fomantic-UI 2.9.0-beta.
|
21867
|
+
* # Fomantic-UI 2.9.0-beta.282+54be6de - Sticky
|
21681
21868
|
* http://github.com/fomantic/Fomantic-UI/
|
21682
21869
|
*
|
21683
21870
|
*
|
@@ -22635,7 +22822,7 @@ $.fn.sticky.settings = {
|
|
22635
22822
|
})( jQuery, window, document );
|
22636
22823
|
|
22637
22824
|
/*!
|
22638
|
-
* # Fomantic-UI 2.9.0-beta.
|
22825
|
+
* # Fomantic-UI 2.9.0-beta.282+54be6de - Tab
|
22639
22826
|
* http://github.com/fomantic/Fomantic-UI/
|
22640
22827
|
*
|
22641
22828
|
*
|
@@ -22736,10 +22923,18 @@ $.fn.tab = function(parameters) {
|
|
22736
22923
|
initializedHistory = true;
|
22737
22924
|
}
|
22738
22925
|
|
22739
|
-
|
22740
|
-
|
22741
|
-
|
22742
|
-
|
22926
|
+
var activeTab = module.determine.activeTab();
|
22927
|
+
if(settings.autoTabActivation && instance === undefined && activeTab == null) {
|
22928
|
+
activeTab = settings.autoTabActivation === true ? module.get.initialPath() : settings.autoTabActivation;
|
22929
|
+
module.debug('No active tab detected, setting tab active', activeTab);
|
22930
|
+
module.changeTab(activeTab);
|
22931
|
+
}
|
22932
|
+
if(activeTab != null && settings.history) {
|
22933
|
+
var autoUpdate = $.address.autoUpdate();
|
22934
|
+
$.address.autoUpdate(false);
|
22935
|
+
$.address.value(activeTab);
|
22936
|
+
$.address.autoUpdate(autoUpdate);
|
22937
|
+
}
|
22743
22938
|
|
22744
22939
|
module.instantiate();
|
22745
22940
|
},
|
@@ -22839,6 +23034,7 @@ $.fn.tab = function(parameters) {
|
|
22839
23034
|
.history(true)
|
22840
23035
|
.state(settings.path)
|
22841
23036
|
;
|
23037
|
+
$(window).trigger('popstate');
|
22842
23038
|
}
|
22843
23039
|
else {
|
22844
23040
|
module.error(error.path);
|
@@ -23006,6 +23202,10 @@ $.fn.tab = function(parameters) {
|
|
23006
23202
|
module.verbose('Tab parameters found', nextPathArray);
|
23007
23203
|
}
|
23008
23204
|
}
|
23205
|
+
if (settings.onBeforeChange.call(element, currentPath) === false) {
|
23206
|
+
module.debug('onBeforeChange returned false, cancelling tab change', $tab);
|
23207
|
+
return false;
|
23208
|
+
}
|
23009
23209
|
if(isLastTab && remoteContent) {
|
23010
23210
|
if(!shouldIgnoreLoad) {
|
23011
23211
|
module.activate.navigation(currentPath);
|
@@ -23042,6 +23242,10 @@ $.fn.tab = function(parameters) {
|
|
23042
23242
|
// if anchor exists use parent tab
|
23043
23243
|
if($anchor && $anchor.length > 0 && currentPath) {
|
23044
23244
|
module.debug('Anchor link used, opening parent tab', $tab, $anchor);
|
23245
|
+
if (settings.onBeforeChange.call(element, currentPath) === false) {
|
23246
|
+
module.debug('onBeforeChange returned false, cancelling tab change', $tab);
|
23247
|
+
return false;
|
23248
|
+
}
|
23045
23249
|
if( !$tab.hasClass(className.active) ) {
|
23046
23250
|
setTimeout(function() {
|
23047
23251
|
module.scrollTo($anchor);
|
@@ -23595,6 +23799,7 @@ $.fn.tab.settings = {
|
|
23595
23799
|
onLoad : function(tabPath, parameterArray, historyEvent) {}, // called on every load
|
23596
23800
|
onVisible : function(tabPath, parameterArray, historyEvent) {}, // called every time tab visible
|
23597
23801
|
onRequest : function(tabPath, parameterArray, historyEvent) {}, // called ever time a tab beings loading remote content
|
23802
|
+
onBeforeChange: function(tabPath) {}, // called before a tab is about to be changed. Returning false will cancel the tab change
|
23598
23803
|
|
23599
23804
|
templates : {
|
23600
23805
|
determineTitle: function(tabArray) {} // returns page title for path
|
@@ -23637,7 +23842,7 @@ $.fn.tab.settings = {
|
|
23637
23842
|
})( jQuery, window, document );
|
23638
23843
|
|
23639
23844
|
/*!
|
23640
|
-
* # Fomantic-UI 2.9.0-beta.
|
23845
|
+
* # Fomantic-UI 2.9.0-beta.282+54be6de - Toast
|
23641
23846
|
* http://github.com/fomantic/Fomantic-UI/
|
23642
23847
|
*
|
23643
23848
|
*
|
@@ -23707,12 +23912,14 @@ $.fn.toast = function(parameters) {
|
|
23707
23912
|
element = this,
|
23708
23913
|
instance = isToastComponent ? $module.data(moduleNamespace) : undefined,
|
23709
23914
|
|
23915
|
+
id,
|
23710
23916
|
module
|
23711
23917
|
;
|
23712
23918
|
module = {
|
23713
23919
|
|
23714
23920
|
initialize: function() {
|
23715
23921
|
module.verbose('Initializing element');
|
23922
|
+
module.create.id();
|
23716
23923
|
if (!module.has.container()) {
|
23717
23924
|
module.create.container();
|
23718
23925
|
}
|
@@ -23762,17 +23969,22 @@ $.fn.toast = function(parameters) {
|
|
23762
23969
|
},
|
23763
23970
|
|
23764
23971
|
show: function(callback) {
|
23765
|
-
callback = callback || function(){};
|
23766
|
-
module.debug('Showing toast');
|
23767
23972
|
if(settings.onShow.call($toastBox, element) === false) {
|
23768
23973
|
module.debug('onShow callback returned false, cancelling toast animation');
|
23769
23974
|
return;
|
23770
23975
|
}
|
23976
|
+
callback = callback || function(){};
|
23977
|
+
module.debug('Showing toast');
|
23771
23978
|
module.animate.show(callback);
|
23772
23979
|
},
|
23773
23980
|
|
23774
23981
|
close: function(callback) {
|
23982
|
+
if(settings.onHide.call($toastBox, element) === false) {
|
23983
|
+
module.debug('onHide callback returned false, cancelling toast animation');
|
23984
|
+
return;
|
23985
|
+
}
|
23775
23986
|
callback = callback || function(){};
|
23987
|
+
module.debug('Closing toast');
|
23776
23988
|
module.remove.visible();
|
23777
23989
|
module.unbind.events();
|
23778
23990
|
module.animate.close(callback);
|
@@ -23784,12 +23996,16 @@ $.fn.toast = function(parameters) {
|
|
23784
23996
|
module.verbose('Creating container');
|
23785
23997
|
$context.append($('<div/>',{class: settings.position + ' ' + className.container + ' ' +(settings.horizontal ? className.horizontal : '')}));
|
23786
23998
|
},
|
23999
|
+
id: function() {
|
24000
|
+
id = (Math.random().toString(16) + '000000000').slice(2, 10);
|
24001
|
+
module.verbose('Creating unique id for element', id);
|
24002
|
+
},
|
23787
24003
|
toast: function() {
|
23788
24004
|
$toastBox = $('<div/>', {class: className.box});
|
23789
24005
|
var iconClass = module.get.iconClass();
|
23790
24006
|
if (!isToastComponent) {
|
23791
24007
|
module.verbose('Creating toast');
|
23792
|
-
$toast = $('<div/>');
|
24008
|
+
$toast = $('<div/>', {role: 'alert'});
|
23793
24009
|
var $content = $('<div/>', {class: className.content});
|
23794
24010
|
if (iconClass !== '') {
|
23795
24011
|
$toast.append($('<i/>', {class: iconClass + ' ' + className.icon}));
|
@@ -23802,13 +24018,21 @@ $.fn.toast = function(parameters) {
|
|
23802
24018
|
}));
|
23803
24019
|
}
|
23804
24020
|
if (settings.title !== '') {
|
24021
|
+
var titleId = '_' + module.get.id() + 'title';
|
24022
|
+
$toast.attr('aria-labelledby', titleId);
|
23805
24023
|
$content.append($('<div/>', {
|
23806
24024
|
class: className.title,
|
23807
|
-
|
24025
|
+
id: titleId,
|
24026
|
+
html: module.helpers.escape(settings.title, settings.preserveHTML)
|
23808
24027
|
}));
|
23809
24028
|
}
|
23810
|
-
|
23811
|
-
$
|
24029
|
+
var descId = '_' + module.get.id() + 'desc';
|
24030
|
+
$toast.attr('aria-describedby', descId);
|
24031
|
+
$content.append($('<div/>', {
|
24032
|
+
class: className.message,
|
24033
|
+
id: descId,
|
24034
|
+
html: module.helpers.escape(settings.message, settings.preserveHTML)
|
24035
|
+
}));
|
23812
24036
|
|
23813
24037
|
$toast
|
23814
24038
|
.addClass(settings.class + ' ' + className.toast)
|
@@ -23816,7 +24040,7 @@ $.fn.toast = function(parameters) {
|
|
23816
24040
|
;
|
23817
24041
|
$toast.css('opacity', settings.opacity);
|
23818
24042
|
if (settings.closeIcon) {
|
23819
|
-
$close = $('<i/>', {class: className.close + ' ' + (typeof settings.closeIcon === 'string' ? settings.closeIcon : '')});
|
24043
|
+
$close = $('<i/>', {class: className.close + ' ' + (typeof settings.closeIcon === 'string' ? settings.closeIcon : ''), role: 'button', tabindex: 0, 'aria-label': settings.text.close});
|
23820
24044
|
if($close.hasClass(className.left)) {
|
23821
24045
|
$toast.prepend($close);
|
23822
24046
|
} else {
|
@@ -23859,15 +24083,17 @@ $.fn.toast = function(parameters) {
|
|
23859
24083
|
}
|
23860
24084
|
}
|
23861
24085
|
settings.actions.forEach(function (el) {
|
23862
|
-
var icon = el[fields.icon] ? '<i class="' + module.helpers.deQuote(el[fields.icon]) + ' icon"></i>' : '',
|
24086
|
+
var icon = el[fields.icon] ? '<i '+(el[fields.text] ? 'aria-hidden="true"' : '')+' class="' + module.helpers.deQuote(el[fields.icon]) + ' icon"></i>' : '',
|
23863
24087
|
text = module.helpers.escape(el[fields.text] || '', settings.preserveHTML),
|
23864
24088
|
cls = module.helpers.deQuote(el[fields.class] || ''),
|
23865
24089
|
click = el[fields.click] && $.isFunction(el[fields.click]) ? el[fields.click] : function () {};
|
23866
24090
|
$actions.append($('<button/>', {
|
23867
24091
|
html: icon + text,
|
24092
|
+
'aria-label': $('<div>'+(el[fields.text] || el[fields.icon] || '')+'</div>').text(),
|
23868
24093
|
class: className.button + ' ' + cls,
|
23869
24094
|
click: function () {
|
23870
|
-
|
24095
|
+
var button = $(this);
|
24096
|
+
if (button.is(selector.approve) || button.is(selector.deny) || click.call(element, $module) === false) {
|
23871
24097
|
return;
|
23872
24098
|
}
|
23873
24099
|
module.close();
|
@@ -23967,13 +24193,12 @@ $.fn.toast = function(parameters) {
|
|
23967
24193
|
bind: {
|
23968
24194
|
events: function() {
|
23969
24195
|
module.debug('Binding events to toast');
|
23970
|
-
if(settings.
|
23971
|
-
(
|
23972
|
-
.on('click' + eventNamespace, module.event.click)
|
23973
|
-
;
|
24196
|
+
if(settings.closeIcon) {
|
24197
|
+
$close.on('click' + eventNamespace, module.event.close);
|
23974
24198
|
}
|
24199
|
+
$toast.on('click' + eventNamespace, module.event.click);
|
23975
24200
|
if($animationObject) {
|
23976
|
-
$animationObject.on('animationend' + eventNamespace, module.close);
|
24201
|
+
$animationObject.on('animationend' + eventNamespace, module.event.close);
|
23977
24202
|
}
|
23978
24203
|
$toastBox
|
23979
24204
|
.on('click' + eventNamespace, selector.approve, module.event.approve)
|
@@ -23985,11 +24210,10 @@ $.fn.toast = function(parameters) {
|
|
23985
24210
|
unbind: {
|
23986
24211
|
events: function() {
|
23987
24212
|
module.debug('Unbinding events to toast');
|
23988
|
-
if(settings.
|
23989
|
-
|
23990
|
-
.off('click' + eventNamespace)
|
23991
|
-
;
|
24213
|
+
if(settings.closeIcon) {
|
24214
|
+
$close.off('click' + eventNamespace);
|
23992
24215
|
}
|
24216
|
+
$toast.off('click' + eventNamespace);
|
23993
24217
|
if($animationObject) {
|
23994
24218
|
$animationObject.off('animationend' + eventNamespace);
|
23995
24219
|
}
|
@@ -24021,11 +24245,6 @@ $.fn.toast = function(parameters) {
|
|
24021
24245
|
},
|
24022
24246
|
close: function(callback) {
|
24023
24247
|
callback = $.isFunction(callback) ? callback : function(){};
|
24024
|
-
module.debug('Closing toast');
|
24025
|
-
if(settings.onHide.call($toastBox, element) === false) {
|
24026
|
-
module.debug('onHide callback returned false, cancelling toast animation');
|
24027
|
-
return;
|
24028
|
-
}
|
24029
24248
|
if(settings.transition && $.fn.transition !== undefined && $module.transition('is supported')) {
|
24030
24249
|
$toastBox
|
24031
24250
|
.transition({
|
@@ -24081,7 +24300,7 @@ $.fn.toast = function(parameters) {
|
|
24081
24300
|
has: {
|
24082
24301
|
container: function() {
|
24083
24302
|
module.verbose('Determining if there is already a container');
|
24084
|
-
return ($context.find(module.helpers.toClass(settings.position) + selector.container + (settings.horizontal ? module.helpers.toClass(className.horizontal) : '')).length > 0);
|
24303
|
+
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);
|
24085
24304
|
},
|
24086
24305
|
toast: function(){
|
24087
24306
|
return !!module.get.toast();
|
@@ -24095,8 +24314,11 @@ $.fn.toast = function(parameters) {
|
|
24095
24314
|
},
|
24096
24315
|
|
24097
24316
|
get: {
|
24317
|
+
id: function() {
|
24318
|
+
return id;
|
24319
|
+
},
|
24098
24320
|
container: function() {
|
24099
|
-
return ($context.find(module.helpers.toClass(settings.position) + selector.container)[0]);
|
24321
|
+
return ($context.find(module.helpers.toClass(settings.position) + selector.container + (settings.horizontal ? module.helpers.toClass(className.horizontal) : ':not('+module.helpers.toClass(className.horizontal)+')'))[0]);
|
24100
24322
|
},
|
24101
24323
|
toastBox: function() {
|
24102
24324
|
return $toastBox || null;
|
@@ -24128,9 +24350,15 @@ $.fn.toast = function(parameters) {
|
|
24128
24350
|
},
|
24129
24351
|
|
24130
24352
|
event: {
|
24353
|
+
close: function(){
|
24354
|
+
module.close();
|
24355
|
+
},
|
24131
24356
|
click: function(event) {
|
24132
|
-
if($(event.target).closest(
|
24133
|
-
settings.onClick.call($toastBox, element)
|
24357
|
+
if($(event.target).closest(selector.clickable).length === 0) {
|
24358
|
+
if(settings.onClick.call($toastBox, element) === false || !settings.closeOnClick) {
|
24359
|
+
module.verbose('Click callback returned false or close denied by setting cancelling close');
|
24360
|
+
return;
|
24361
|
+
}
|
24134
24362
|
module.close();
|
24135
24363
|
}
|
24136
24364
|
},
|
@@ -24471,6 +24699,10 @@ $.fn.toast.settings = {
|
|
24471
24699
|
unclickable : 'unclickable'
|
24472
24700
|
},
|
24473
24701
|
|
24702
|
+
text: {
|
24703
|
+
close : 'Close'
|
24704
|
+
},
|
24705
|
+
|
24474
24706
|
icons : {
|
24475
24707
|
info : 'info',
|
24476
24708
|
success : 'checkmark',
|
@@ -24487,6 +24719,7 @@ $.fn.toast.settings = {
|
|
24487
24719
|
image : '> img.image, > .image > img',
|
24488
24720
|
icon : '> i.icon',
|
24489
24721
|
input : 'input:not([type="hidden"]), textarea, select, button, .ui.button, ui.dropdown',
|
24722
|
+
clickable : 'a, details, .ui.accordion',
|
24490
24723
|
approve : '.actions .positive, .actions .approve, .actions .ok',
|
24491
24724
|
deny : '.actions .negative, .actions .deny, .actions .cancel'
|
24492
24725
|
},
|
@@ -24530,7 +24763,7 @@ $.extend( $.easing, {
|
|
24530
24763
|
})( jQuery, window, document );
|
24531
24764
|
|
24532
24765
|
/*!
|
24533
|
-
* # Fomantic-UI 2.9.0-beta.
|
24766
|
+
* # Fomantic-UI 2.9.0-beta.282+54be6de - Transition
|
24534
24767
|
* http://github.com/fomantic/Fomantic-UI/
|
24535
24768
|
*
|
24536
24769
|
*
|
@@ -25302,6 +25535,10 @@ $.fn.transition = function() {
|
|
25302
25535
|
},
|
25303
25536
|
|
25304
25537
|
hide: function() {
|
25538
|
+
if(settings.onHide.call(element) === false) {
|
25539
|
+
module.verbose('Hide callback returned false cancelling hide');
|
25540
|
+
return false;
|
25541
|
+
}
|
25305
25542
|
module.verbose('Hiding element');
|
25306
25543
|
if( module.is.animating() ) {
|
25307
25544
|
module.reset();
|
@@ -25309,35 +25546,32 @@ $.fn.transition = function() {
|
|
25309
25546
|
element.blur(); // IE will trigger focus change if element is not blurred before hiding
|
25310
25547
|
module.remove.display();
|
25311
25548
|
module.remove.visible();
|
25312
|
-
|
25313
|
-
settings.onBeforeHide.call(element,function(){
|
25314
|
-
module.hideNow();
|
25315
|
-
});
|
25316
|
-
} else {
|
25317
|
-
module.hideNow();
|
25318
|
-
}
|
25319
|
-
|
25549
|
+
settings.onBeforeHide.call(element, module.hideNow);
|
25320
25550
|
},
|
25321
25551
|
|
25322
25552
|
hideNow: function() {
|
25323
25553
|
module.set.hidden();
|
25324
25554
|
module.force.hidden();
|
25325
|
-
settings.
|
25555
|
+
settings.onHidden.call(element);
|
25326
25556
|
settings.onComplete.call(element);
|
25327
25557
|
// module.repaint();
|
25328
25558
|
},
|
25329
25559
|
|
25330
25560
|
show: function(display) {
|
25331
|
-
module.
|
25332
|
-
|
25561
|
+
if(module.force.visible() && settings.onShow.call(element) !== false) {
|
25562
|
+
module.verbose('Showing element', display);
|
25333
25563
|
module.remove.hidden();
|
25334
|
-
|
25335
|
-
settings.onShow.call(element);
|
25336
|
-
settings.onComplete.call(element);
|
25337
|
-
// module.repaint();
|
25564
|
+
settings.onBeforeShow.call(element, module.showNow);
|
25338
25565
|
}
|
25339
25566
|
},
|
25340
25567
|
|
25568
|
+
showNow: function(){
|
25569
|
+
module.set.visible();
|
25570
|
+
settings.onVisible.call(element);
|
25571
|
+
settings.onComplete.call(element);
|
25572
|
+
// module.repaint();
|
25573
|
+
},
|
25574
|
+
|
25341
25575
|
toggle: function() {
|
25342
25576
|
if( module.is.visible() ) {
|
25343
25577
|
module.hide();
|
@@ -25586,7 +25820,11 @@ $.fn.transition.settings = {
|
|
25586
25820
|
onStart : function() {},
|
25587
25821
|
onComplete : function() {},
|
25588
25822
|
onShow : function() {},
|
25823
|
+
onBeforeShow : function(callback) {callback.call(this)},
|
25824
|
+
onVisible : function() {},
|
25589
25825
|
onHide : function() {},
|
25826
|
+
onHidden : function() {},
|
25827
|
+
onBeforeHide : function(callback) {callback.call(this)},
|
25590
25828
|
|
25591
25829
|
// whether timeout should be used to ensure callback fires in cases animationend does not
|
25592
25830
|
useFailSafe : true,
|
@@ -25640,7 +25878,7 @@ $.fn.transition.settings = {
|
|
25640
25878
|
})( jQuery, window, document );
|
25641
25879
|
|
25642
25880
|
/*!
|
25643
|
-
* # Fomantic-UI 2.9.0-beta.
|
25881
|
+
* # Fomantic-UI 2.9.0-beta.282+54be6de - API
|
25644
25882
|
* http://github.com/fomantic/Fomantic-UI/
|
25645
25883
|
*
|
25646
25884
|
*
|
@@ -25715,6 +25953,7 @@ $.api = $.fn.api = function(parameters) {
|
|
25715
25953
|
url,
|
25716
25954
|
data,
|
25717
25955
|
requestStartTime,
|
25956
|
+
originalData,
|
25718
25957
|
|
25719
25958
|
// standard module
|
25720
25959
|
element = this,
|
@@ -25727,6 +25966,7 @@ $.api = $.fn.api = function(parameters) {
|
|
25727
25966
|
|
25728
25967
|
initialize: function() {
|
25729
25968
|
if(!methodInvoked) {
|
25969
|
+
originalData = settings.data;
|
25730
25970
|
module.bind.events();
|
25731
25971
|
}
|
25732
25972
|
module.instantiate();
|
@@ -25789,8 +26029,8 @@ $.api = $.fn.api = function(parameters) {
|
|
25789
26029
|
module.error(error.noStorage);
|
25790
26030
|
return;
|
25791
26031
|
}
|
25792
|
-
response = sessionStorage.getItem(url);
|
25793
|
-
module.debug('Using cached response', url, response);
|
26032
|
+
response = sessionStorage.getItem(url + module.get.normalizedData());
|
26033
|
+
module.debug('Using cached response', url, settings.data, response);
|
25794
26034
|
response = module.decode.json(response);
|
25795
26035
|
return response;
|
25796
26036
|
}
|
@@ -25808,8 +26048,8 @@ $.api = $.fn.api = function(parameters) {
|
|
25808
26048
|
if( $.isPlainObject(response) ) {
|
25809
26049
|
response = JSON.stringify(response);
|
25810
26050
|
}
|
25811
|
-
sessionStorage.setItem(url, response);
|
25812
|
-
module.verbose('Storing cached response for url', url, response);
|
26051
|
+
sessionStorage.setItem(url + module.get.normalizedData(), response);
|
26052
|
+
module.verbose('Storing cached response for url', url, settings.data, response);
|
25813
26053
|
}
|
25814
26054
|
},
|
25815
26055
|
|
@@ -25838,7 +26078,7 @@ $.api = $.fn.api = function(parameters) {
|
|
25838
26078
|
|
25839
26079
|
// Add form content
|
25840
26080
|
if(settings.serializeForm) {
|
25841
|
-
settings.data = module.add.formData(settings.data);
|
26081
|
+
settings.data = module.add.formData(originalData || settings.data);
|
25842
26082
|
}
|
25843
26083
|
|
25844
26084
|
// call beforesend and get any settings changes
|
@@ -25975,10 +26215,6 @@ $.api = $.fn.api = function(parameters) {
|
|
25975
26215
|
cancelled: function() {
|
25976
26216
|
return (module.cancelled || false);
|
25977
26217
|
},
|
25978
|
-
succesful: function() {
|
25979
|
-
module.verbose('This behavior will be deleted due to typo. Use "was successful" instead.');
|
25980
|
-
return module.was.successful();
|
25981
|
-
},
|
25982
26218
|
successful: function() {
|
25983
26219
|
return (module.request && module.request.state() == 'resolved');
|
25984
26220
|
},
|
@@ -26006,8 +26242,8 @@ $.api = $.fn.api = function(parameters) {
|
|
26006
26242
|
var
|
26007
26243
|
// allow legacy {$var} style
|
26008
26244
|
variable = (templatedString.indexOf('$') !== -1)
|
26009
|
-
? templatedString.
|
26010
|
-
: templatedString.
|
26245
|
+
? templatedString.slice(2, -1)
|
26246
|
+
: templatedString.slice(1, -1),
|
26011
26247
|
value = ($.isPlainObject(urlData) && urlData[variable] !== undefined)
|
26012
26248
|
? urlData[variable]
|
26013
26249
|
: ($module.data(variable) !== undefined)
|
@@ -26038,8 +26274,8 @@ $.api = $.fn.api = function(parameters) {
|
|
26038
26274
|
var
|
26039
26275
|
// allow legacy {/$var} style
|
26040
26276
|
variable = (templatedString.indexOf('$') !== -1)
|
26041
|
-
? templatedString.
|
26042
|
-
: templatedString.
|
26277
|
+
? templatedString.slice(3, -1)
|
26278
|
+
: templatedString.slice(2, -1),
|
26043
26279
|
value = ($.isPlainObject(urlData) && urlData[variable] !== undefined)
|
26044
26280
|
? urlData[variable]
|
26045
26281
|
: ($module.data(variable) !== undefined)
|
@@ -26070,24 +26306,76 @@ $.api = $.fn.api = function(parameters) {
|
|
26070
26306
|
},
|
26071
26307
|
formData: function(data) {
|
26072
26308
|
var
|
26073
|
-
|
26074
|
-
|
26075
|
-
|
26076
|
-
: $form.serialize(),
|
26077
|
-
hasOtherData
|
26309
|
+
formData = {},
|
26310
|
+
hasOtherData,
|
26311
|
+
useFormDataApi = settings.serializeForm === 'formdata'
|
26078
26312
|
;
|
26079
|
-
data = data || settings.data;
|
26313
|
+
data = data || originalData || settings.data;
|
26080
26314
|
hasOtherData = $.isPlainObject(data);
|
26081
26315
|
|
26316
|
+
if (useFormDataApi) {
|
26317
|
+
formData = new FormData($form[0]);
|
26318
|
+
settings.processData = typeof settings.processData !== 'undefined' ? settings.processData : false;
|
26319
|
+
settings.contentType = typeof settings.contentType !== 'undefined' ? settings.contentType : false;
|
26320
|
+
} else {
|
26321
|
+
var formArray = $form.serializeArray(),
|
26322
|
+
pushes = {},
|
26323
|
+
pushValues= {},
|
26324
|
+
build = function(base, key, value) {
|
26325
|
+
base[key] = value;
|
26326
|
+
return base;
|
26327
|
+
}
|
26328
|
+
;
|
26329
|
+
// add files
|
26330
|
+
$.each($('input[type="file"]',$form), function(i, tag) {
|
26331
|
+
$.each($(tag)[0].files, function(j, file) {
|
26332
|
+
formArray.push({name:tag.name, value: file});
|
26333
|
+
});
|
26334
|
+
});
|
26335
|
+
$.each(formArray, function(i, el) {
|
26336
|
+
if (!settings.regExp.validate.test(el.name)) return;
|
26337
|
+
var isCheckbox = $('[name="' + el.name + '"]', $form).attr('type') === 'checkbox',
|
26338
|
+
floatValue = parseFloat(el.value),
|
26339
|
+
value = (isCheckbox && el.value === 'on') || el.value === 'true' || (String(floatValue) === el.value ? floatValue : (el.value === 'false' ? false : el.value)),
|
26340
|
+
nameKeys = el.name.match(settings.regExp.key) || [], k, pushKey= el.name.replace(/\[\]$/,'')
|
26341
|
+
;
|
26342
|
+
if(!(pushKey in pushes)) {
|
26343
|
+
pushes[pushKey] = 0;
|
26344
|
+
pushValues[pushKey] = value;
|
26345
|
+
} else if (Array.isArray(pushValues[pushKey])) {
|
26346
|
+
pushValues[pushKey].push(value);
|
26347
|
+
} else {
|
26348
|
+
pushValues[pushKey] = [pushValues[pushKey] , value];
|
26349
|
+
}
|
26350
|
+
value = pushValues[pushKey];
|
26351
|
+
|
26352
|
+
while ((k = nameKeys.pop()) !== undefined) {
|
26353
|
+
// foo[]
|
26354
|
+
if (k == '' && !Array.isArray(value)){
|
26355
|
+
value = build([], pushes[pushKey]++, value);
|
26356
|
+
}
|
26357
|
+
// foo[n]
|
26358
|
+
else if (settings.regExp.fixed.test(k)) {
|
26359
|
+
value = build([], k, value);
|
26360
|
+
}
|
26361
|
+
// foo; foo[bar]
|
26362
|
+
else if (settings.regExp.named.test(k)) {
|
26363
|
+
value = build({}, k, value);
|
26364
|
+
}
|
26365
|
+
}
|
26366
|
+
formData = $.extend(true, formData, value);
|
26367
|
+
});
|
26368
|
+
}
|
26369
|
+
|
26082
26370
|
if(hasOtherData) {
|
26083
|
-
|
26084
|
-
|
26085
|
-
|
26086
|
-
|
26087
|
-
|
26088
|
-
module.error(error.missingSerialize);
|
26089
|
-
module.debug('Cant extend data. Replacing data with form data', data, formData);
|
26371
|
+
module.debug('Extending existing data with form data', data, formData);
|
26372
|
+
if(useFormDataApi) {
|
26373
|
+
$.each(Object.keys(data),function(i, el){
|
26374
|
+
formData.append(el, data[el]);
|
26375
|
+
});
|
26090
26376
|
data = formData;
|
26377
|
+
} else {
|
26378
|
+
data = $.extend(true, {}, data, formData);
|
26091
26379
|
}
|
26092
26380
|
}
|
26093
26381
|
else {
|
@@ -26339,6 +26627,9 @@ $.api = $.fn.api = function(parameters) {
|
|
26339
26627
|
},
|
26340
26628
|
|
26341
26629
|
get: {
|
26630
|
+
normalizedData: function(){
|
26631
|
+
return typeof settings.data === "string" ? settings.data : JSON.stringify(settings.data, Object.keys(settings.data).sort());
|
26632
|
+
},
|
26342
26633
|
responseFromXHR: function(xhr) {
|
26343
26634
|
return $.isPlainObject(xhr)
|
26344
26635
|
? (module.is.expectingJSON())
|
@@ -26724,6 +27015,8 @@ $.api.settings = {
|
|
26724
27015
|
defaultData : true,
|
26725
27016
|
|
26726
27017
|
// whether to serialize closest form
|
27018
|
+
// use true to convert complex named keys like a[b][1][c][] into a nested object
|
27019
|
+
// use 'formdata' for formdata web api
|
26727
27020
|
serializeForm : false,
|
26728
27021
|
|
26729
27022
|
// how long to wait before request should occur
|
@@ -26746,7 +27039,7 @@ $.api.settings = {
|
|
26746
27039
|
responseAsync : false,
|
26747
27040
|
|
26748
27041
|
// whether onResponse should work with response value without force converting into an object
|
26749
|
-
rawResponse :
|
27042
|
+
rawResponse : true,
|
26750
27043
|
|
26751
27044
|
// callbacks before request
|
26752
27045
|
beforeSend : function(settings) { return settings; },
|
@@ -26782,7 +27075,6 @@ $.api.settings = {
|
|
26782
27075
|
legacyParameters : 'You are using legacy API success callback names',
|
26783
27076
|
method : 'The method you called is not defined',
|
26784
27077
|
missingAction : 'API action used but no url was defined',
|
26785
|
-
missingSerialize : 'jquery-serialize-object is required to add form data to an existing data object',
|
26786
27078
|
missingURL : 'No URL specified for api event',
|
26787
27079
|
noReturnedValue : 'The beforeSend callback must return a settings object, beforeSend ignored.',
|
26788
27080
|
noStorage : 'Caching responses locally requires session storage',
|
@@ -26795,6 +27087,11 @@ $.api.settings = {
|
|
26795
27087
|
regExp : {
|
26796
27088
|
required : /\{\$*[A-z0-9]+\}/g,
|
26797
27089
|
optional : /\{\/\$*[A-z0-9]+\}/g,
|
27090
|
+
validate: /^[a-z_][a-z0-9_-]*(?:\[(?:\d*|[a-z0-9_-]+)\])*$/i,
|
27091
|
+
key: /[a-z0-9_-]+|(?=\[\])/gi,
|
27092
|
+
push: /^$/,
|
27093
|
+
fixed: /^\d+$/,
|
27094
|
+
named: /^[a-z0-9_-]+$/i
|
26798
27095
|
},
|
26799
27096
|
|
26800
27097
|
className: {
|
@@ -26818,7 +27115,7 @@ $.api.settings = {
|
|
26818
27115
|
})( jQuery, window, document );
|
26819
27116
|
|
26820
27117
|
/*!
|
26821
|
-
* # Fomantic-UI 2.9.0-beta.
|
27118
|
+
* # Fomantic-UI 2.9.0-beta.282+54be6de - State
|
26822
27119
|
* http://github.com/fomantic/Fomantic-UI/
|
26823
27120
|
*
|
26824
27121
|
*
|
@@ -27530,7 +27827,7 @@ $.fn.state.settings = {
|
|
27530
27827
|
})( jQuery, window, document );
|
27531
27828
|
|
27532
27829
|
/*!
|
27533
|
-
* # Fomantic-UI 2.9.0-beta.
|
27830
|
+
* # Fomantic-UI 2.9.0-beta.282+54be6de - Visibility
|
27534
27831
|
* http://github.com/fomantic/Fomantic-UI/
|
27535
27832
|
*
|
27536
27833
|
*
|