fomantic-ui 2.9.0-beta.29 → 2.9.0-beta.292
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 +242 -3
- package/.github/codeql/codeql-config.yml +4 -0
- package/.github/dependabot.yml +10 -0
- package/.github/workflows/ci.yml +10 -6
- package/.github/workflows/codeql.yml +68 -0
- package/.github/workflows/nightly.yml +16 -8
- package/.github/workflows/release.yml +34 -0
- package/CONTRIBUTORS.md +81 -37
- package/FAQ.md +38 -38
- package/README.md +8 -8
- package/dist/components/accordion.css +176 -36
- 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 +89 -30
- 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 +204 -157
- package/dist/components/button.min.css +2 -2
- package/dist/components/calendar.css +18 -1
- package/dist/components/calendar.js +85 -68
- package/dist/components/calendar.min.css +2 -2
- package/dist/components/calendar.min.js +3 -3
- package/dist/components/card.css +754 -117
- 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 +98 -4
- 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 +90 -50
- package/dist/components/dropdown.js +134 -110
- 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 +10847 -8841
- 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 +1011 -902
- package/dist/components/flag.min.css +2 -2
- package/dist/components/form.css +160 -83
- package/dist/components/form.js +39 -30
- 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 +6 -4
- 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 +759 -22
- package/dist/components/input.min.css +2 -2
- package/dist/components/item.css +17 -17
- package/dist/components/item.min.css +2 -2
- package/dist/components/label.css +72 -68
- package/dist/components/label.min.css +2 -2
- package/dist/components/list.css +31 -31
- 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 +108 -76
- package/dist/components/menu.min.css +1 -1
- package/dist/components/message.css +43 -43
- package/dist/components/message.min.css +2 -2
- package/dist/components/modal.css +14 -2
- package/dist/components/modal.js +128 -50
- 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 +2 -2
- 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 +100 -104
- package/dist/components/popup.js +11 -11
- 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 +6 -6
- 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 +14 -12
- package/dist/components/sidebar.min.css +2 -2
- package/dist/components/sidebar.min.js +3 -3
- package/dist/components/site.css +139 -42
- 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 +2 -2
- package/dist/components/state.min.js +3 -3
- package/dist/components/statistic.css +4 -4
- package/dist/components/statistic.min.css +2 -2
- package/dist/components/step.css +31 -31
- package/dist/components/step.min.css +2 -2
- package/dist/components/sticky.css +1 -1
- package/dist/components/sticky.js +4 -4
- 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 +24 -6
- package/dist/components/tab.min.css +2 -2
- package/dist/components/tab.min.js +3 -3
- package/dist/components/table.css +1684 -272
- 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 +42 -1
- package/dist/components/toast.js +63 -31
- 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 +2 -2
- package/dist/components/visibility.min.js +3 -3
- package/dist/semantic.css +20165 -13374
- package/dist/semantic.js +734 -455
- package/dist/semantic.min.css +3 -3
- package/dist/semantic.min.js +3 -3
- package/dist/themes/default/assets/fonts/Lato-Bold.woff +0 -0
- package/dist/themes/default/assets/fonts/Lato-Bold.woff2 +0 -0
- package/dist/themes/default/assets/fonts/Lato-BoldItalic.woff +0 -0
- package/dist/themes/default/assets/fonts/Lato-BoldItalic.woff2 +0 -0
- package/dist/themes/default/assets/fonts/Lato-Italic.woff +0 -0
- package/dist/themes/default/assets/fonts/Lato-Italic.woff2 +0 -0
- package/dist/themes/default/assets/fonts/Lato-Regular.woff +0 -0
- package/dist/themes/default/assets/fonts/Lato-Regular.woff2 +0 -0
- package/dist/themes/default/assets/fonts/LatoLatin-Bold.woff +0 -0
- package/dist/themes/default/assets/fonts/LatoLatin-Bold.woff2 +0 -0
- package/dist/themes/default/assets/fonts/LatoLatin-BoldItalic.woff +0 -0
- package/dist/themes/default/assets/fonts/LatoLatin-BoldItalic.woff2 +0 -0
- package/dist/themes/default/assets/fonts/LatoLatin-Italic.woff +0 -0
- package/dist/themes/default/assets/fonts/LatoLatin-Italic.woff2 +0 -0
- package/dist/themes/default/assets/fonts/LatoLatin-Regular.woff +0 -0
- package/dist/themes/default/assets/fonts/LatoLatin-Regular.woff2 +0 -0
- 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/dist/themes/{default → famfamfam}/assets/images/flags.png +0 -0
- package/examples/assets/library/iframe-content.js +8 -8
- package/examples/assets/library/iframe.js +3 -3
- package/examples/components/button.html +1 -1
- package/examples/components/card.html +1 -1
- package/examples/components/input.html +1 -1
- package/examples/components/menu.html +1 -1
- package/examples/components/site.html +1 -1
- package/examples/components/table.html +1 -1
- package/package.json +18 -16
- package/scripts/nightly-version.js +47 -38
- package/src/definitions/behaviors/api.js +88 -29
- package/src/definitions/behaviors/form.js +38 -29
- package/src/definitions/behaviors/state.js +1 -1
- package/src/definitions/behaviors/visibility.js +1 -1
- package/src/definitions/collections/form.less +229 -165
- package/src/definitions/collections/grid.less +723 -687
- package/src/definitions/collections/menu.less +232 -170
- package/src/definitions/collections/message.less +49 -47
- package/src/definitions/collections/table.less +882 -272
- 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 +39 -10
- package/src/definitions/elements/flag.less +53 -18
- package/src/definitions/elements/header.less +46 -37
- package/src/definitions/elements/icon.less +39 -32
- package/src/definitions/elements/input.less +281 -33
- package/src/definitions/elements/label.less +132 -128
- 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 +177 -56
- 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 +25 -2
- package/src/definitions/modules/accordion.js +5 -2
- package/src/definitions/modules/accordion.less +371 -219
- package/src/definitions/modules/calendar.js +84 -67
- 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 +22 -8
- package/src/definitions/modules/dropdown.js +133 -109
- package/src/definitions/modules/dropdown.less +191 -136
- package/src/definitions/modules/embed.less +4 -4
- package/src/definitions/modules/modal.js +127 -49
- package/src/definitions/modules/modal.less +12 -0
- package/src/definitions/modules/nag.js +1 -1
- package/src/definitions/modules/nag.less +20 -19
- package/src/definitions/modules/popup.js +10 -10
- 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 +13 -11
- 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/sticky.js +3 -3
- package/src/definitions/modules/sticky.less +3 -1
- package/src/definitions/modules/tab.js +23 -5
- package/src/definitions/modules/tab.less +4 -4
- package/src/definitions/modules/toast.js +62 -30
- package/src/definitions/modules/toast.less +51 -16
- package/src/definitions/modules/transition.js +20 -15
- package/src/definitions/views/ad.less +3 -3
- package/src/definitions/views/card.less +522 -375
- 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/theme.less +13 -2
- package/src/themes/amazon/globals/site.variables +1 -0
- 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/Lato-Bold.woff +0 -0
- package/src/themes/default/assets/fonts/Lato-Bold.woff2 +0 -0
- package/src/themes/default/assets/fonts/Lato-BoldItalic.woff +0 -0
- package/src/themes/default/assets/fonts/Lato-BoldItalic.woff2 +0 -0
- package/src/themes/default/assets/fonts/Lato-Italic.woff +0 -0
- package/src/themes/default/assets/fonts/Lato-Italic.woff2 +0 -0
- package/src/themes/default/assets/fonts/Lato-Regular.woff +0 -0
- package/src/themes/default/assets/fonts/Lato-Regular.woff2 +0 -0
- package/src/themes/default/assets/fonts/LatoLatin-Bold.woff +0 -0
- package/src/themes/default/assets/fonts/LatoLatin-Bold.woff2 +0 -0
- package/src/themes/default/assets/fonts/LatoLatin-BoldItalic.woff +0 -0
- package/src/themes/default/assets/fonts/LatoLatin-BoldItalic.woff2 +0 -0
- package/src/themes/default/assets/fonts/LatoLatin-Italic.woff +0 -0
- package/src/themes/default/assets/fonts/LatoLatin-Italic.woff2 +0 -0
- package/src/themes/default/assets/fonts/LatoLatin-Regular.woff +0 -0
- package/src/themes/default/assets/fonts/LatoLatin-Regular.woff2 +0 -0
- 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 +0 -3090
- package/src/themes/default/elements/emoji.variables +3575 -1
- package/src/themes/default/elements/flag.overrides +0 -991
- package/src/themes/default/elements/flag.variables +1609 -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 +109 -8
- 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/{default → famfamfam}/assets/images/flags.png +0 -0
- package/src/themes/famfamfam/elements/flag.overrides +1026 -0
- package/src/themes/famfamfam/elements/flag.variables +20 -0
- package/src/themes/github/elements/icon.overrides +206 -206
- package/src/themes/github/elements/step.overrides +5 -5
- package/src/themes/github/globals/site.variables +1 -0
- 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 +0 -3089
- package/src/themes/joypixels/elements/emoji.variables +3574 -5
- 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/systemfont/globals/reset.overrides +8 -0
- package/src/themes/systemfont/globals/site.variables +10 -0
- package/src/themes/twitter/elements/emoji.overrides +0 -3091
- package/src/themes/twitter/elements/emoji.variables +3570 -6
- package/tasks/admin/distributions/create.js +1 -1
- package/tasks/admin/publish.js +1 -1
- package/tasks/admin/release.js +1 -1
- package/tasks/build/assets.js +1 -1
- package/tasks/build/css.js +9 -4
- package/tasks/build/javascript.js +3 -3
- package/tasks/check-install.js +1 -1
- package/tasks/clean.js +1 -1
- package/tasks/collections/README.md +1 -1
- package/tasks/collections/admin.js +1 -1
- package/tasks/config/admin/oauth.example.js +1 -1
- package/tasks/config/admin/templates/composer.json +1 -1
- package/tasks/config/project/install.js +15 -13
- package/tasks/install.js +1 -0
- package/tasks/rtl/watch.js +1 -1
- package/tasks/version.js +1 -1
- package/test/fixtures/accordion.html +1 -1
- package/test/fixtures/checkbox.html +1 -1
- package/test/fixtures/dropdown.html +1 -1
- package/test/fixtures/modal.html +1 -1
- package/test/fixtures/popup.html +1 -1
- package/test/fixtures/rating.html +1 -1
- package/test/fixtures/shape.html +1 -1
- package/test/fixtures/sidebar.html +1 -1
- package/test/fixtures/tab.html +1 -1
- package/test/fixtures/transition.html +1 -1
- package/test/fixtures/video.html +1 -1
- package/test/helpers/jasmine-jquery.js +2 -2
- package/test/helpers/jasmine-sinon.js +1 -1
- package/test/helpers/jquery-events.js +1 -1
- package/test/helpers/sinon.js +3 -3
- package/test/meteor/fonts.js +1 -1
- package/test/modules/accordion.spec.js +1 -1
- package/test/modules/checkbox.spec.js +1 -1
- package/test/modules/dropdown.spec.js +1 -1
- package/test/modules/modal.spec.js +1 -1
- package/test/modules/module.spec.js +1 -1
- package/test/modules/popup.spec.js +1 -1
- package/test/modules/search.spec.js +1 -1
- package/test/modules/shape.spec.js +1 -1
- package/test/modules/sidebar.spec.js +1 -1
- package/test/modules/tab.spec.js +1 -1
- package/test/modules/transition.spec.js +1 -1
- package/test/modules/video.spec.js +1 -1
package/dist/semantic.js
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
/*
|
2
|
-
* # Fomantic UI - 2.9.0-beta.
|
2
|
+
* # Fomantic UI - 2.9.0-beta.292+4ee9307
|
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.292+4ee9307 - 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.292+4ee9307 - 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,10 +1718,10 @@ $.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
|
-
focusElement = $(settings.errorFocus);
|
1724
|
+
focusElement = $(document).find(settings.errorFocus);
|
1714
1725
|
hasTabIndex = focusElement.is('[tabindex]');
|
1715
1726
|
// to be able to focus/scroll into non input elements we need a tabindex
|
1716
1727
|
if (!hasTabIndex) {
|
@@ -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.292+4ee9307 - 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.292+4ee9307 - 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
|
@@ -3995,7 +4010,7 @@ $.fn.calendar = function(parameters) {
|
|
3995
4010
|
return null;
|
3996
4011
|
}
|
3997
4012
|
if (!(selector instanceof $)) {
|
3998
|
-
selector = $(selector).first();
|
4013
|
+
selector = $(document).find(selector).first();
|
3999
4014
|
}
|
4000
4015
|
//assume range related calendars are using the same namespace
|
4001
4016
|
return selector.data(moduleNamespace);
|
@@ -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.292+4ee9307 - 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.292+4ee9307 - 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.292+4ee9307 - Dropdown
|
6704
6745
|
* http://github.com/fomantic/Fomantic-UI/
|
6705
6746
|
*
|
6706
6747
|
*
|
@@ -6731,11 +6772,6 @@ $.fn.dropdown = function(parameters) {
|
|
6731
6772
|
|
6732
6773
|
moduleSelector = $allModules.selector || '',
|
6733
6774
|
|
6734
|
-
hasTouch = ('ontouchstart' in document.documentElement),
|
6735
|
-
clickEvent = hasTouch
|
6736
|
-
? 'touchstart'
|
6737
|
-
: 'click',
|
6738
|
-
|
6739
6775
|
time = new Date().getTime(),
|
6740
6776
|
performance = [],
|
6741
6777
|
|
@@ -6767,7 +6803,7 @@ $.fn.dropdown = function(parameters) {
|
|
6767
6803
|
moduleNamespace = 'module-' + namespace,
|
6768
6804
|
|
6769
6805
|
$module = $(this),
|
6770
|
-
$context = $(settings.context),
|
6806
|
+
$context = [window,document].indexOf(settings.context) < 0 ? $(document).find(settings.context) : $(settings.context),
|
6771
6807
|
$text = $module.find(selector.text),
|
6772
6808
|
$search = $module.find(selector.search),
|
6773
6809
|
$sizer = $module.find(selector.sizer),
|
@@ -6901,6 +6937,7 @@ $.fn.dropdown = function(parameters) {
|
|
6901
6937
|
select: function() {
|
6902
6938
|
if(module.has.input() && selectObserver) {
|
6903
6939
|
selectObserver.observe($module[0], {
|
6940
|
+
attributes: true,
|
6904
6941
|
childList : true,
|
6905
6942
|
subtree : true
|
6906
6943
|
});
|
@@ -6925,7 +6962,7 @@ $.fn.dropdown = function(parameters) {
|
|
6925
6962
|
|
6926
6963
|
create: {
|
6927
6964
|
id: function() {
|
6928
|
-
id = (Math.random().toString(16) + '000000000').
|
6965
|
+
id = (Math.random().toString(16) + '000000000').slice(2, 10);
|
6929
6966
|
elementNamespace = '.' + id;
|
6930
6967
|
module.verbose('Creating unique id for element', id);
|
6931
6968
|
},
|
@@ -7122,6 +7159,9 @@ $.fn.dropdown = function(parameters) {
|
|
7122
7159
|
module.debug('Disabling dropdown');
|
7123
7160
|
$module.addClass(className.disabled);
|
7124
7161
|
}
|
7162
|
+
if($input.is('[required]')) {
|
7163
|
+
settings.forceSelection = true;
|
7164
|
+
}
|
7125
7165
|
$input
|
7126
7166
|
.removeAttr('required')
|
7127
7167
|
.removeAttr('class')
|
@@ -7238,9 +7278,7 @@ $.fn.dropdown = function(parameters) {
|
|
7238
7278
|
}
|
7239
7279
|
if(settings.onShow.call(element) !== false) {
|
7240
7280
|
module.animate.show(function() {
|
7241
|
-
|
7242
|
-
module.bind.intent();
|
7243
|
-
}
|
7281
|
+
module.bind.intent();
|
7244
7282
|
if(module.has.search() && !preventFocus) {
|
7245
7283
|
module.focusSearch();
|
7246
7284
|
}
|
@@ -7267,8 +7305,17 @@ $.fn.dropdown = function(parameters) {
|
|
7267
7305
|
}
|
7268
7306
|
callback.call(element);
|
7269
7307
|
});
|
7308
|
+
// Hide submenus explicitly. On some browsers (esp. mobile), they will not automatically receive a
|
7309
|
+
// mouseleave event
|
7310
|
+
var $subMenu = $module.find(selector.menu);
|
7311
|
+
if($subMenu.length > 0) {
|
7312
|
+
module.verbose('Hiding sub-menu', $subMenu);
|
7313
|
+
$subMenu.each(function() {
|
7314
|
+
module.animate.hide(false, $(this));
|
7315
|
+
});
|
7316
|
+
}
|
7270
7317
|
}
|
7271
|
-
} else
|
7318
|
+
} else {
|
7272
7319
|
module.unbind.intent();
|
7273
7320
|
}
|
7274
7321
|
iconClicked = false;
|
@@ -7326,13 +7373,18 @@ $.fn.dropdown = function(parameters) {
|
|
7326
7373
|
$module
|
7327
7374
|
.on('change' + eventNamespace, selector.input, module.event.change)
|
7328
7375
|
;
|
7376
|
+
if(module.is.multiple() && module.is.searchSelection()) {
|
7377
|
+
$module
|
7378
|
+
.on('paste' + eventNamespace, selector.search, module.event.paste)
|
7379
|
+
;
|
7380
|
+
}
|
7329
7381
|
},
|
7330
7382
|
mouseEvents: function() {
|
7331
7383
|
module.verbose('Binding mouse events');
|
7332
7384
|
if(module.is.multiple()) {
|
7333
7385
|
$module
|
7334
|
-
.on(
|
7335
|
-
.on(
|
7386
|
+
.on('click' + eventNamespace, selector.label, module.event.label.click)
|
7387
|
+
.on('click' + eventNamespace, selector.remove, module.event.remove.click)
|
7336
7388
|
;
|
7337
7389
|
}
|
7338
7390
|
if( module.is.searchSelection() ) {
|
@@ -7341,31 +7393,33 @@ $.fn.dropdown = function(parameters) {
|
|
7341
7393
|
.on('mouseup' + eventNamespace, module.event.mouseup)
|
7342
7394
|
.on('mousedown' + eventNamespace, selector.menu, module.event.menu.mousedown)
|
7343
7395
|
.on('mouseup' + eventNamespace, selector.menu, module.event.menu.mouseup)
|
7344
|
-
.on(
|
7345
|
-
.on(
|
7396
|
+
.on('click' + eventNamespace, selector.icon, module.event.icon.click)
|
7397
|
+
.on('click' + eventNamespace, selector.clearIcon, module.event.clearIcon.click)
|
7346
7398
|
.on('focus' + eventNamespace, selector.search, module.event.search.focus)
|
7347
|
-
.on(
|
7399
|
+
.on('click' + eventNamespace, selector.search, module.event.search.focus)
|
7348
7400
|
.on('blur' + eventNamespace, selector.search, module.event.search.blur)
|
7349
|
-
.on(
|
7401
|
+
.on('click' + eventNamespace, selector.text, module.event.text.focus)
|
7350
7402
|
;
|
7351
7403
|
if(module.is.multiple()) {
|
7352
7404
|
$module
|
7353
|
-
.on(
|
7354
|
-
.on(
|
7405
|
+
.on('click' + eventNamespace, module.event.click)
|
7406
|
+
.on('click' + eventNamespace, module.event.search.focus)
|
7355
7407
|
;
|
7356
7408
|
}
|
7357
7409
|
}
|
7358
7410
|
else {
|
7359
7411
|
if(settings.on == 'click') {
|
7360
7412
|
$module
|
7361
|
-
.on(
|
7362
|
-
.on(
|
7413
|
+
.on('click' + eventNamespace, selector.icon, module.event.icon.click)
|
7414
|
+
.on('click' + eventNamespace, module.event.test.toggle)
|
7363
7415
|
;
|
7364
7416
|
}
|
7365
7417
|
else if(settings.on == 'hover') {
|
7366
7418
|
$module
|
7367
7419
|
.on('mouseenter' + eventNamespace, module.delay.show)
|
7368
7420
|
.on('mouseleave' + eventNamespace, module.delay.hide)
|
7421
|
+
.on('touchstart' + eventNamespace, module.event.test.toggle)
|
7422
|
+
.on('touchstart' + eventNamespace, selector.icon, module.event.icon.click)
|
7369
7423
|
;
|
7370
7424
|
}
|
7371
7425
|
else {
|
@@ -7377,7 +7431,7 @@ $.fn.dropdown = function(parameters) {
|
|
7377
7431
|
.on('mousedown' + eventNamespace, module.event.mousedown)
|
7378
7432
|
.on('mouseup' + eventNamespace, module.event.mouseup)
|
7379
7433
|
.on('focus' + eventNamespace, module.event.focus)
|
7380
|
-
.on(
|
7434
|
+
.on('click' + eventNamespace, selector.clearIcon, module.event.clearIcon.click)
|
7381
7435
|
;
|
7382
7436
|
if(module.has.menuSearch() ) {
|
7383
7437
|
$module
|
@@ -7391,21 +7445,16 @@ $.fn.dropdown = function(parameters) {
|
|
7391
7445
|
}
|
7392
7446
|
}
|
7393
7447
|
$menu
|
7394
|
-
.on(
|
7448
|
+
.on('mouseenter' + eventNamespace, selector.item, module.event.item.mouseenter)
|
7449
|
+
.on('touchstart' + eventNamespace, selector.item, module.event.item.mouseenter)
|
7395
7450
|
.on('mouseleave' + eventNamespace, selector.item, module.event.item.mouseleave)
|
7396
7451
|
.on('click' + eventNamespace, selector.item, module.event.item.click)
|
7397
7452
|
;
|
7398
7453
|
},
|
7399
7454
|
intent: function() {
|
7400
7455
|
module.verbose('Binding hide intent event to document');
|
7401
|
-
if(hasTouch) {
|
7402
|
-
$document
|
7403
|
-
.on('touchstart' + elementNamespace, module.event.test.touch)
|
7404
|
-
.on('touchmove' + elementNamespace, module.event.test.touch)
|
7405
|
-
;
|
7406
|
-
}
|
7407
7456
|
$document
|
7408
|
-
.on(
|
7457
|
+
.on('click' + elementNamespace, module.event.test.hide)
|
7409
7458
|
;
|
7410
7459
|
}
|
7411
7460
|
},
|
@@ -7413,14 +7462,8 @@ $.fn.dropdown = function(parameters) {
|
|
7413
7462
|
unbind: {
|
7414
7463
|
intent: function() {
|
7415
7464
|
module.verbose('Removing hide intent event from document');
|
7416
|
-
if(hasTouch) {
|
7417
|
-
$document
|
7418
|
-
.off('touchstart' + elementNamespace)
|
7419
|
-
.off('touchmove' + elementNamespace)
|
7420
|
-
;
|
7421
|
-
}
|
7422
7465
|
$document
|
7423
|
-
.off(
|
7466
|
+
.off('click' + elementNamespace)
|
7424
7467
|
;
|
7425
7468
|
}
|
7426
7469
|
},
|
@@ -7545,7 +7588,7 @@ $.fn.dropdown = function(parameters) {
|
|
7545
7588
|
var value = module.is.multiple() ? module.get.values() : module.get.value();
|
7546
7589
|
if (value !== '') {
|
7547
7590
|
module.verbose('Value(s) present after click icon, select value(s) in items');
|
7548
|
-
module.set.selected(value, null,
|
7591
|
+
module.set.selected(value, null, true, true);
|
7549
7592
|
}
|
7550
7593
|
}
|
7551
7594
|
iconClicked = false;
|
@@ -7745,7 +7788,7 @@ $.fn.dropdown = function(parameters) {
|
|
7745
7788
|
menuConfig[fields.values] = values;
|
7746
7789
|
module.setup.menu(menuConfig);
|
7747
7790
|
$.each(values, function(index, item) {
|
7748
|
-
if(item.selected
|
7791
|
+
if(item.selected === true) {
|
7749
7792
|
module.debug('Setting initial selection to', item[fields.value]);
|
7750
7793
|
module.set.selected(item[fields.value]);
|
7751
7794
|
if(!module.is.multiple()) {
|
@@ -7766,7 +7809,7 @@ $.fn.dropdown = function(parameters) {
|
|
7766
7809
|
settings.preserveHTML
|
7767
7810
|
)
|
7768
7811
|
;
|
7769
|
-
$input.append('<option value="' + value + '">' + name + '</option>');
|
7812
|
+
$input.append('<option value="' + value + '"' + (item.selected === true ? ' selected' : '') + '>' + name + '</option>');
|
7770
7813
|
});
|
7771
7814
|
module.observe.select();
|
7772
7815
|
}
|
@@ -7774,6 +7817,15 @@ $.fn.dropdown = function(parameters) {
|
|
7774
7817
|
},
|
7775
7818
|
|
7776
7819
|
event: {
|
7820
|
+
paste: function(event) {
|
7821
|
+
var pasteValue = (event.originalEvent.clipboardData || window.clipboardData).getData('text'),
|
7822
|
+
tokens = pasteValue.split(settings.delimiter)
|
7823
|
+
;
|
7824
|
+
tokens.forEach(function(value){
|
7825
|
+
module.set.selected(module.escape.htmlEntities(value.trim()), null, true, true);
|
7826
|
+
});
|
7827
|
+
event.preventDefault();
|
7828
|
+
},
|
7777
7829
|
change: function() {
|
7778
7830
|
if(!internalChange) {
|
7779
7831
|
module.debug('Input changed, updating selection');
|
@@ -7950,23 +8002,12 @@ $.fn.dropdown = function(parameters) {
|
|
7950
8002
|
if (!module.is.multiple() || (module.is.multiple() && !module.is.active())) {
|
7951
8003
|
focused = true;
|
7952
8004
|
}
|
7953
|
-
if( module.determine.eventOnElement(event, toggleBehavior) ) {
|
8005
|
+
if( module.determine.eventOnElement(event, toggleBehavior) && event.type !== 'touchstart') {
|
8006
|
+
// do not preventDefault of touchstart; so emulated mouseenter is triggered on first touch and not later
|
8007
|
+
// (when selecting an item). The double-showing of the dropdown through both events does not hurt.
|
7954
8008
|
event.preventDefault();
|
7955
8009
|
}
|
7956
8010
|
},
|
7957
|
-
touch: function(event) {
|
7958
|
-
module.determine.eventOnElement(event, function() {
|
7959
|
-
if(event.type == 'touchstart') {
|
7960
|
-
module.timer = setTimeout(function() {
|
7961
|
-
module.hide();
|
7962
|
-
}, settings.delay.touch);
|
7963
|
-
}
|
7964
|
-
else if(event.type == 'touchmove') {
|
7965
|
-
clearTimeout(module.timer);
|
7966
|
-
}
|
7967
|
-
});
|
7968
|
-
event.stopPropagation();
|
7969
|
-
},
|
7970
8011
|
hide: function(event) {
|
7971
8012
|
if(module.determine.eventInModule(event, module.hide)){
|
7972
8013
|
if(element.id && $(event.target).attr('for') === element.id){
|
@@ -7986,8 +8027,8 @@ $.fn.dropdown = function(parameters) {
|
|
7986
8027
|
},
|
7987
8028
|
select: {
|
7988
8029
|
mutation: function(mutations) {
|
7989
|
-
module.debug('<select> modified, recreating menu');
|
7990
8030
|
if(module.is.selectMutation(mutations)) {
|
8031
|
+
module.debug('<select> modified, recreating menu');
|
7991
8032
|
module.disconnect.selectObserver();
|
7992
8033
|
module.refresh();
|
7993
8034
|
module.setup.select();
|
@@ -8050,13 +8091,15 @@ $.fn.dropdown = function(parameters) {
|
|
8050
8091
|
},
|
8051
8092
|
mouseleave: function(event) {
|
8052
8093
|
var
|
8053
|
-
$subMenu = $(this).
|
8094
|
+
$subMenu = $(this).find(selector.menu)
|
8054
8095
|
;
|
8055
8096
|
if($subMenu.length > 0) {
|
8056
8097
|
clearTimeout(module.itemTimer);
|
8057
8098
|
module.itemTimer = setTimeout(function() {
|
8058
8099
|
module.verbose('Hiding sub-menu', $subMenu);
|
8059
|
-
|
8100
|
+
$subMenu.each(function() {
|
8101
|
+
module.animate.hide(false, $(this));
|
8102
|
+
});
|
8060
8103
|
}, settings.delay.hide);
|
8061
8104
|
}
|
8062
8105
|
},
|
@@ -8082,7 +8125,7 @@ $.fn.dropdown = function(parameters) {
|
|
8082
8125
|
module.remove.userAddition();
|
8083
8126
|
}
|
8084
8127
|
module.remove.searchTerm();
|
8085
|
-
if(!module.is.focusedOnSearch() &&
|
8128
|
+
if(!module.is.focusedOnSearch() && skipRefocus !== true) {
|
8086
8129
|
module.focusSearch(true);
|
8087
8130
|
}
|
8088
8131
|
}
|
@@ -8214,7 +8257,7 @@ $.fn.dropdown = function(parameters) {
|
|
8214
8257
|
keydown: function(event) {
|
8215
8258
|
var
|
8216
8259
|
pressedKey = event.which,
|
8217
|
-
isShortcutKey = module.is.inObject(pressedKey, keys)
|
8260
|
+
isShortcutKey = module.is.inObject(pressedKey, keys) || event.key === settings.delimiter
|
8218
8261
|
;
|
8219
8262
|
if(isShortcutKey) {
|
8220
8263
|
var
|
@@ -8232,7 +8275,7 @@ $.fn.dropdown = function(parameters) {
|
|
8232
8275
|
hasSubMenu = ($subMenu.length> 0),
|
8233
8276
|
hasSelectedItem = ($selectedItem.length > 0),
|
8234
8277
|
selectedIsSelectable = ($selectedItem.not(selector.unselectable).length > 0),
|
8235
|
-
delimiterPressed = (
|
8278
|
+
delimiterPressed = (event.key === settings.delimiter && module.is.multiple()),
|
8236
8279
|
isAdditionWithoutMenu = (settings.allowAdditions && settings.hideAdditions && (pressedKey == keys.enter || delimiterPressed) && selectedIsSelectable),
|
8237
8280
|
$nextItem,
|
8238
8281
|
isSubMenuItem,
|
@@ -8330,7 +8373,7 @@ $.fn.dropdown = function(parameters) {
|
|
8330
8373
|
.addClass(className.selected)
|
8331
8374
|
;
|
8332
8375
|
module.set.scrollPosition($nextItem);
|
8333
|
-
if(settings.selectOnKeydown && module.is.single()) {
|
8376
|
+
if(settings.selectOnKeydown && module.is.single() && !$nextItem.hasClass(className.actionable)) {
|
8334
8377
|
module.set.selectedItem($nextItem);
|
8335
8378
|
}
|
8336
8379
|
}
|
@@ -8357,7 +8400,7 @@ $.fn.dropdown = function(parameters) {
|
|
8357
8400
|
.addClass(className.selected)
|
8358
8401
|
;
|
8359
8402
|
module.set.scrollPosition($nextItem);
|
8360
|
-
if(settings.selectOnKeydown && module.is.single()) {
|
8403
|
+
if(settings.selectOnKeydown && module.is.single() && !$nextItem.hasClass(className.actionable)) {
|
8361
8404
|
module.set.selectedItem($nextItem);
|
8362
8405
|
}
|
8363
8406
|
}
|
@@ -8488,7 +8531,7 @@ $.fn.dropdown = function(parameters) {
|
|
8488
8531
|
;
|
8489
8532
|
if( module.can.activate( $(element) ) ) {
|
8490
8533
|
module.set.selected(value, $(element));
|
8491
|
-
if(!module.is.multiple()) {
|
8534
|
+
if(!module.is.multiple() && !(!settings.collapseOnActionable && $(element).hasClass(className.actionable))) {
|
8492
8535
|
module.hideAndClear();
|
8493
8536
|
}
|
8494
8537
|
}
|
@@ -8501,7 +8544,7 @@ $.fn.dropdown = function(parameters) {
|
|
8501
8544
|
;
|
8502
8545
|
if( module.can.activate( $(element) ) ) {
|
8503
8546
|
module.set.value(value, text, $(element));
|
8504
|
-
if(!module.is.multiple()) {
|
8547
|
+
if(!module.is.multiple() && !(!settings.collapseOnActionable && $(element).hasClass(className.actionable))) {
|
8505
8548
|
module.hideAndClear();
|
8506
8549
|
}
|
8507
8550
|
}
|
@@ -8552,7 +8595,7 @@ $.fn.dropdown = function(parameters) {
|
|
8552
8595
|
;
|
8553
8596
|
$sizer.text(value);
|
8554
8597
|
// prevent rounding issues
|
8555
|
-
return Math.ceil( $sizer.width() + 1);
|
8598
|
+
return Math.ceil( $sizer.width() + (module.is.edge() ? 3 : 1));
|
8556
8599
|
},
|
8557
8600
|
selectionCount: function() {
|
8558
8601
|
var
|
@@ -9021,7 +9064,7 @@ $.fn.dropdown = function(parameters) {
|
|
9021
9064
|
module.error(error.noStorage);
|
9022
9065
|
return;
|
9023
9066
|
}
|
9024
|
-
name = sessionStorage.getItem(value);
|
9067
|
+
name = sessionStorage.getItem(value + elementNamespace);
|
9025
9068
|
return (name !== undefined)
|
9026
9069
|
? name
|
9027
9070
|
: false
|
@@ -9065,7 +9108,7 @@ $.fn.dropdown = function(parameters) {
|
|
9065
9108
|
return;
|
9066
9109
|
}
|
9067
9110
|
module.verbose('Saving remote data to session storage', value, name);
|
9068
|
-
sessionStorage.setItem(value, name);
|
9111
|
+
sessionStorage.setItem(value + elementNamespace, name);
|
9069
9112
|
}
|
9070
9113
|
},
|
9071
9114
|
|
@@ -9125,7 +9168,7 @@ $.fn.dropdown = function(parameters) {
|
|
9125
9168
|
$nextSelectedItem
|
9126
9169
|
.addClass(className.selected)
|
9127
9170
|
;
|
9128
|
-
if(settings.selectOnKeydown && module.is.single()) {
|
9171
|
+
if(settings.selectOnKeydown && module.is.single() && !$nextItem.hasClass(className.actionable)) {
|
9129
9172
|
module.set.selectedItem($nextSelectedItem);
|
9130
9173
|
}
|
9131
9174
|
$menu
|
@@ -9211,7 +9254,7 @@ $.fn.dropdown = function(parameters) {
|
|
9211
9254
|
var
|
9212
9255
|
length = module.get.query().length
|
9213
9256
|
;
|
9214
|
-
$search.val( text.
|
9257
|
+
$search.val( text.slice(0, length));
|
9215
9258
|
},
|
9216
9259
|
scrollPosition: function($item, forceScroll) {
|
9217
9260
|
var
|
@@ -9328,13 +9371,13 @@ $.fn.dropdown = function(parameters) {
|
|
9328
9371
|
module.set.scrollPosition($nextValue);
|
9329
9372
|
$selectedItem.removeClass(className.selected);
|
9330
9373
|
$nextValue.addClass(className.selected);
|
9331
|
-
if(settings.selectOnKeydown && module.is.single()) {
|
9374
|
+
if(settings.selectOnKeydown && module.is.single() && !$nextItem.hasClass(className.actionable)) {
|
9332
9375
|
module.set.selectedItem($nextValue);
|
9333
9376
|
}
|
9334
9377
|
}
|
9335
9378
|
},
|
9336
9379
|
direction: function($menu) {
|
9337
|
-
if(settings.direction
|
9380
|
+
if(settings.direction === 'auto') {
|
9338
9381
|
// reset position, remove upward if it's base menu
|
9339
9382
|
if (!$menu) {
|
9340
9383
|
module.remove.upward();
|
@@ -9353,7 +9396,7 @@ $.fn.dropdown = function(parameters) {
|
|
9353
9396
|
module.set.leftward($menu);
|
9354
9397
|
}
|
9355
9398
|
}
|
9356
|
-
else if(settings.direction
|
9399
|
+
else if(settings.direction === 'upward') {
|
9357
9400
|
module.set.upward($menu);
|
9358
9401
|
}
|
9359
9402
|
},
|
@@ -9366,6 +9409,11 @@ $.fn.dropdown = function(parameters) {
|
|
9366
9409
|
$element.addClass(className.leftward);
|
9367
9410
|
},
|
9368
9411
|
value: function(value, text, $selected, preventChangeTrigger) {
|
9412
|
+
if(typeof text === 'boolean') {
|
9413
|
+
preventChangeTrigger = text;
|
9414
|
+
$selected = undefined;
|
9415
|
+
text = undefined;
|
9416
|
+
}
|
9369
9417
|
if(value !== undefined && value !== '' && !(Array.isArray(value) && value.length === 0)) {
|
9370
9418
|
$input.removeClass(className.noselection);
|
9371
9419
|
} else {
|
@@ -9429,12 +9477,21 @@ $.fn.dropdown = function(parameters) {
|
|
9429
9477
|
visible: function() {
|
9430
9478
|
$module.addClass(className.visible);
|
9431
9479
|
},
|
9432
|
-
exactly: function(value, $selectedItem) {
|
9480
|
+
exactly: function(value, $selectedItem, preventChangeTrigger) {
|
9481
|
+
if(typeof $selectedItem === 'boolean') {
|
9482
|
+
preventChangeTrigger = $selectedItem;
|
9483
|
+
$selectedItem = undefined;
|
9484
|
+
}
|
9433
9485
|
module.debug('Setting selected to exact values');
|
9434
9486
|
module.clear();
|
9435
|
-
module.set.selected(value, $selectedItem);
|
9487
|
+
module.set.selected(value, $selectedItem, preventChangeTrigger);
|
9436
9488
|
},
|
9437
9489
|
selected: function(value, $selectedItem, preventChangeTrigger, keepSearchTerm) {
|
9490
|
+
if(typeof $selectedItem === 'boolean') {
|
9491
|
+
keepSearchTerm = preventChangeTrigger;
|
9492
|
+
preventChangeTrigger = $selectedItem;
|
9493
|
+
$selectedItem = undefined;
|
9494
|
+
}
|
9438
9495
|
var
|
9439
9496
|
isMultiple = module.is.multiple()
|
9440
9497
|
;
|
@@ -9466,23 +9523,30 @@ $.fn.dropdown = function(parameters) {
|
|
9466
9523
|
|
9467
9524
|
isFiltered = $selected.hasClass(className.filtered),
|
9468
9525
|
isActive = $selected.hasClass(className.active),
|
9526
|
+
isActionable = $selected.hasClass(className.actionable),
|
9469
9527
|
isUserValue = $selected.hasClass(className.addition),
|
9470
|
-
shouldAnimate = (isMultiple && $selectedItem.length
|
9528
|
+
shouldAnimate = (isMultiple && $selectedItem && $selectedItem.length === 1)
|
9471
9529
|
;
|
9472
|
-
if(
|
9530
|
+
if(isActionable){
|
9531
|
+
if((!isMultiple || (!isActive || isUserValue)) && settings.apiSettings && settings.saveRemoteData) {
|
9532
|
+
module.save.remoteData(selectedText, selectedValue);
|
9533
|
+
}
|
9534
|
+
settings.onActionable.call(element, selectedValue, selectedText, $selected);
|
9535
|
+
}
|
9536
|
+
else if(isMultiple) {
|
9473
9537
|
if(!isActive || isUserValue) {
|
9474
9538
|
if(settings.apiSettings && settings.saveRemoteData) {
|
9475
9539
|
module.save.remoteData(selectedText, selectedValue);
|
9476
9540
|
}
|
9477
9541
|
if(settings.useLabels) {
|
9542
|
+
module.add.value(selectedValue, selectedText, $selected, preventChangeTrigger);
|
9478
9543
|
module.add.label(selectedValue, selectedText, shouldAnimate);
|
9479
|
-
module.add.value(selectedValue, selectedText, $selected);
|
9480
9544
|
module.set.activeItem($selected);
|
9481
9545
|
module.filterActive();
|
9482
9546
|
module.select.nextAvailable($selectedItem);
|
9483
9547
|
}
|
9484
9548
|
else {
|
9485
|
-
module.add.value(selectedValue, selectedText, $selected);
|
9549
|
+
module.add.value(selectedValue, selectedText, $selected, preventChangeTrigger);
|
9486
9550
|
module.set.text(module.add.variables(message.count));
|
9487
9551
|
module.set.activeItem($selected);
|
9488
9552
|
}
|
@@ -9496,7 +9560,7 @@ $.fn.dropdown = function(parameters) {
|
|
9496
9560
|
if(settings.apiSettings && settings.saveRemoteData) {
|
9497
9561
|
module.save.remoteData(selectedText, selectedValue);
|
9498
9562
|
}
|
9499
|
-
if (!keepSearchTerm) {
|
9563
|
+
if (!keepSearchTerm && !$selected.hasClass(className.actionable)) {
|
9500
9564
|
module.set.text(selectedText);
|
9501
9565
|
}
|
9502
9566
|
module.set.value(selectedValue, selectedText, $selected, preventChangeTrigger);
|
@@ -9595,7 +9659,7 @@ $.fn.dropdown = function(parameters) {
|
|
9595
9659
|
$('<option/>')
|
9596
9660
|
.prop('value', escapedValue)
|
9597
9661
|
.addClass(className.addition)
|
9598
|
-
.
|
9662
|
+
.text(value)
|
9599
9663
|
.appendTo($input)
|
9600
9664
|
;
|
9601
9665
|
module.verbose('Adding user addition as an <option>', value);
|
@@ -9671,7 +9735,12 @@ $.fn.dropdown = function(parameters) {
|
|
9671
9735
|
}
|
9672
9736
|
return message;
|
9673
9737
|
},
|
9674
|
-
value: function(addedValue, addedText, $selectedItem) {
|
9738
|
+
value: function(addedValue, addedText, $selectedItem, preventChangeTrigger) {
|
9739
|
+
if(typeof addedText === 'boolean') {
|
9740
|
+
preventChangeTrigger = addedText;
|
9741
|
+
$selectedItem = undefined;
|
9742
|
+
addedText = undefined;
|
9743
|
+
}
|
9675
9744
|
var
|
9676
9745
|
currentValue = module.get.values(true),
|
9677
9746
|
newValue
|
@@ -9686,7 +9755,7 @@ $.fn.dropdown = function(parameters) {
|
|
9686
9755
|
}
|
9687
9756
|
// extend current array
|
9688
9757
|
if(Array.isArray(currentValue)) {
|
9689
|
-
newValue = currentValue.concat([addedValue]);
|
9758
|
+
newValue = $selectedItem && $selectedItem.hasClass(className.actionable) ? currentValue : currentValue.concat([addedValue]);
|
9690
9759
|
newValue = module.get.uniqueArray(newValue);
|
9691
9760
|
}
|
9692
9761
|
else {
|
@@ -9710,7 +9779,7 @@ $.fn.dropdown = function(parameters) {
|
|
9710
9779
|
else {
|
9711
9780
|
settings.onAdd.call(element, addedValue, addedText, $selectedItem);
|
9712
9781
|
}
|
9713
|
-
module.set.value(newValue, addedText, $selectedItem);
|
9782
|
+
module.set.value(newValue, addedText, $selectedItem, preventChangeTrigger);
|
9714
9783
|
module.check.maxSelections();
|
9715
9784
|
},
|
9716
9785
|
},
|
@@ -9770,18 +9839,10 @@ $.fn.dropdown = function(parameters) {
|
|
9770
9839
|
return;
|
9771
9840
|
}
|
9772
9841
|
// temporarily disconnect observer
|
9773
|
-
|
9774
|
-
selectObserver.disconnect();
|
9775
|
-
module.verbose('Temporarily disconnecting mutation observer');
|
9776
|
-
}
|
9842
|
+
module.disconnect.selectObserver();
|
9777
9843
|
$option.remove();
|
9778
9844
|
module.verbose('Removing user addition as an <option>', escapedValue);
|
9779
|
-
|
9780
|
-
selectObserver.observe($input[0], {
|
9781
|
-
childList : true,
|
9782
|
-
subtree : true
|
9783
|
-
});
|
9784
|
-
}
|
9845
|
+
module.observe.select();
|
9785
9846
|
},
|
9786
9847
|
message: function() {
|
9787
9848
|
$menu.children(selector.message).remove();
|
@@ -10080,8 +10141,11 @@ $.fn.dropdown = function(parameters) {
|
|
10080
10141
|
bubbledIconClick: function(event) {
|
10081
10142
|
return $(event.target).closest($icon).length > 0;
|
10082
10143
|
},
|
10144
|
+
edge: function() {
|
10145
|
+
return !!window.chrome && !!window.StyleMedia;
|
10146
|
+
},
|
10083
10147
|
chrome: function() {
|
10084
|
-
return !!window.chrome &&
|
10148
|
+
return !!window.chrome && !window.StyleMedia;
|
10085
10149
|
},
|
10086
10150
|
alreadySetup: function() {
|
10087
10151
|
return ($module.is('select') && $module.parent(selector.dropdown).data(moduleNamespace) !== undefined && $module.prev().length === 0);
|
@@ -10146,7 +10210,7 @@ $.fn.dropdown = function(parameters) {
|
|
10146
10210
|
selectChanged = false
|
10147
10211
|
;
|
10148
10212
|
$.each(mutations, function(index, mutation) {
|
10149
|
-
if($(mutation.target).is('select') || $(mutation.addedNodes).is('select')) {
|
10213
|
+
if($(mutation.target).is('select, option, optgroup') || $(mutation.addedNodes).is('select')) {
|
10150
10214
|
selectChanged = true;
|
10151
10215
|
return false;
|
10152
10216
|
}
|
@@ -10288,9 +10352,6 @@ $.fn.dropdown = function(parameters) {
|
|
10288
10352
|
$currentMenu.removeClass(className.loading);
|
10289
10353
|
return canOpenRightward;
|
10290
10354
|
},
|
10291
|
-
click: function() {
|
10292
|
-
return (hasTouch || settings.on == 'click');
|
10293
|
-
},
|
10294
10355
|
extendSelect: function() {
|
10295
10356
|
return settings.allowAdditions || settings.apiSettings;
|
10296
10357
|
},
|
@@ -10360,9 +10421,7 @@ $.fn.dropdown = function(parameters) {
|
|
10360
10421
|
start = ($subMenu)
|
10361
10422
|
? function() {}
|
10362
10423
|
: function() {
|
10363
|
-
|
10364
|
-
module.unbind.intent();
|
10365
|
-
}
|
10424
|
+
module.unbind.intent();
|
10366
10425
|
module.remove.active();
|
10367
10426
|
},
|
10368
10427
|
transition = settings.transition.hideMethod || module.get.transition($subMenu)
|
@@ -10691,7 +10750,7 @@ $.fn.dropdown.settings = {
|
|
10691
10750
|
keepOnScreen : true, // Whether dropdown should check whether it is on screen before showing
|
10692
10751
|
|
10693
10752
|
match : 'both', // what to match against with search selection (both, text, or label)
|
10694
|
-
fullTextSearch :
|
10753
|
+
fullTextSearch : 'exact', // search anywhere in value (set to 'exact' to require exact matches)
|
10695
10754
|
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
10755
|
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
10756
|
|
@@ -10699,7 +10758,7 @@ $.fn.dropdown.settings = {
|
|
10699
10758
|
preserveHTML : true, // preserve html when selecting value
|
10700
10759
|
sortSelect : false, // sort selection on init
|
10701
10760
|
|
10702
|
-
forceSelection :
|
10761
|
+
forceSelection : false, // force a choice on blur with search selection
|
10703
10762
|
|
10704
10763
|
allowAdditions : false, // whether multiple select should allow user added values
|
10705
10764
|
ignoreCase : false, // whether to consider case sensitivity when creating labels
|
@@ -10710,7 +10769,7 @@ $.fn.dropdown.settings = {
|
|
10710
10769
|
useLabels : true, // whether multiple select should filter currently active selections from choices
|
10711
10770
|
delimiter : ',', // when multiselect uses normal <input> the values will be delimited with this character
|
10712
10771
|
|
10713
|
-
showOnFocus :
|
10772
|
+
showOnFocus : false, // show menu on focus
|
10714
10773
|
allowReselection : false, // whether current value should trigger callbacks when reselected
|
10715
10774
|
allowTab : true, // add tabindex to element
|
10716
10775
|
allowCategorySelection : false, // allow elements with sub-menus to be selected
|
@@ -10725,6 +10784,8 @@ $.fn.dropdown.settings = {
|
|
10725
10784
|
|
10726
10785
|
headerDivider : true, // whether option headers should have an additional divider line underneath when converted from <select> <optgroup>
|
10727
10786
|
|
10787
|
+
collapseOnActionable : true, // whether the dropdown should collapse upon selection of an actionable item
|
10788
|
+
|
10728
10789
|
// label settings on multi-select
|
10729
10790
|
label: {
|
10730
10791
|
transition : 'scale',
|
@@ -10737,13 +10798,13 @@ $.fn.dropdown.settings = {
|
|
10737
10798
|
hide : 300,
|
10738
10799
|
show : 200,
|
10739
10800
|
search : 20,
|
10740
|
-
touch : 50
|
10741
10801
|
},
|
10742
10802
|
|
10743
10803
|
/* Callbacks */
|
10744
10804
|
onChange : function(value, text, $selected){},
|
10745
10805
|
onAdd : function(value, text, $selected){},
|
10746
10806
|
onRemove : function(value, text, $selected){},
|
10807
|
+
onActionable : function(value, text, $selected){},
|
10747
10808
|
onSearch : function(searchTerm){},
|
10748
10809
|
|
10749
10810
|
onLabelSelect : function($selectedLabels){},
|
@@ -10806,12 +10867,12 @@ $.fn.dropdown.settings = {
|
|
10806
10867
|
icon : 'icon', // optional icon name
|
10807
10868
|
iconClass : 'iconClass', // optional individual class for icon (for example to use flag instead)
|
10808
10869
|
class : 'class', // optional individual class for item/header
|
10809
|
-
divider : 'divider' // optional divider append for group headers
|
10870
|
+
divider : 'divider', // optional divider append for group headers
|
10871
|
+
actionable : 'actionable' // optional actionable item
|
10810
10872
|
},
|
10811
10873
|
|
10812
10874
|
keys : {
|
10813
10875
|
backspace : 8,
|
10814
|
-
delimiter : 188, // comma
|
10815
10876
|
deleteKey : 46,
|
10816
10877
|
enter : 13,
|
10817
10878
|
escape : 27,
|
@@ -10878,7 +10939,8 @@ $.fn.dropdown.settings = {
|
|
10878
10939
|
header : 'header',
|
10879
10940
|
divider : 'divider',
|
10880
10941
|
groupIcon : '',
|
10881
|
-
unfilterable : 'unfilterable'
|
10942
|
+
unfilterable : 'unfilterable',
|
10943
|
+
actionable : 'actionable'
|
10882
10944
|
}
|
10883
10945
|
|
10884
10946
|
};
|
@@ -10953,6 +11015,9 @@ $.fn.dropdown.settings.templates = {
|
|
10953
11015
|
maybeText = (option[fields.text])
|
10954
11016
|
? ' data-text="' + deQuote(option[fields.text],true) + '"'
|
10955
11017
|
: '',
|
11018
|
+
maybeActionable = (option[fields.actionable])
|
11019
|
+
? className.actionable+' '
|
11020
|
+
: '',
|
10956
11021
|
maybeDisabled = (option[fields.disabled])
|
10957
11022
|
? className.disabled+' '
|
10958
11023
|
: '',
|
@@ -10961,7 +11026,7 @@ $.fn.dropdown.settings.templates = {
|
|
10961
11026
|
: '',
|
10962
11027
|
hasDescription = (escape(option[fields.description] || '', preserveHTML) != '')
|
10963
11028
|
;
|
10964
|
-
html += '<div class="'+ maybeDisabled + maybeDescriptionVertical + (option[fields.class] ? deQuote(option[fields.class]) : className.item)+'" data-value="' + deQuote(option[fields.value],true) + '"' + maybeText + '>';
|
11029
|
+
html += '<div class="'+ maybeActionable + maybeDisabled + maybeDescriptionVertical + (option[fields.class] ? deQuote(option[fields.class]) : className.item)+'" data-value="' + deQuote(option[fields.value],true) + '"' + maybeText + '>';
|
10965
11030
|
if (isMenu) {
|
10966
11031
|
html += '<i class="'+ (itemType.indexOf('left') !== -1 ? 'left' : '') + ' dropdown icon"></i>';
|
10967
11032
|
}
|
@@ -11031,7 +11096,7 @@ $.fn.dropdown.settings.templates = {
|
|
11031
11096
|
})( jQuery, window, document );
|
11032
11097
|
|
11033
11098
|
/*!
|
11034
|
-
* # Fomantic-UI 2.9.0-beta.
|
11099
|
+
* # Fomantic-UI 2.9.0-beta.292+4ee9307 - Embed
|
11035
11100
|
* http://github.com/fomantic/Fomantic-UI/
|
11036
11101
|
*
|
11037
11102
|
*
|
@@ -11741,7 +11806,7 @@ $.fn.embed.settings = {
|
|
11741
11806
|
})( jQuery, window, document );
|
11742
11807
|
|
11743
11808
|
/*!
|
11744
|
-
* # Fomantic-UI 2.9.0-beta.
|
11809
|
+
* # Fomantic-UI 2.9.0-beta.292+4ee9307 - Modal
|
11745
11810
|
* http://github.com/fomantic/Fomantic-UI/
|
11746
11811
|
*
|
11747
11812
|
*
|
@@ -11807,8 +11872,9 @@ $.fn.modal = function(parameters) {
|
|
11807
11872
|
moduleNamespace = 'module-' + namespace,
|
11808
11873
|
|
11809
11874
|
$module = $(this),
|
11810
|
-
$context = $(settings.context),
|
11811
|
-
$
|
11875
|
+
$context = [window,document].indexOf(settings.context) < 0 ? $(document).find(settings.context) : $(settings.context),
|
11876
|
+
$closeIcon = $module.find(selector.closeIcon),
|
11877
|
+
$inputs,
|
11812
11878
|
|
11813
11879
|
$allModals,
|
11814
11880
|
$otherModals,
|
@@ -11834,6 +11900,7 @@ $.fn.modal = function(parameters) {
|
|
11834
11900
|
module = {
|
11835
11901
|
|
11836
11902
|
initialize: function() {
|
11903
|
+
module.create.id();
|
11837
11904
|
if(!$module.hasClass('modal')) {
|
11838
11905
|
module.create.modal();
|
11839
11906
|
if(!$.isFunction(settings.onHidden)) {
|
@@ -11858,15 +11925,17 @@ $.fn.modal = function(parameters) {
|
|
11858
11925
|
$actions.empty();
|
11859
11926
|
}
|
11860
11927
|
settings.actions.forEach(function (el) {
|
11861
|
-
var icon = el[fields.icon] ? '<i class="' + module.helpers.deQuote(el[fields.icon]) + ' icon"></i>' : '',
|
11928
|
+
var icon = el[fields.icon] ? '<i '+(el[fields.text] ? 'aria-hidden="true"' : '')+' class="' + module.helpers.deQuote(el[fields.icon]) + ' icon"></i>' : '',
|
11862
11929
|
text = module.helpers.escape(el[fields.text] || '', settings.preserveHTML),
|
11863
11930
|
cls = module.helpers.deQuote(el[fields.class] || ''),
|
11864
11931
|
click = el[fields.click] && $.isFunction(el[fields.click]) ? el[fields.click] : function () {};
|
11865
11932
|
$actions.append($('<button/>', {
|
11866
11933
|
html: icon + text,
|
11934
|
+
'aria-label': (el[fields.text] || el[fields.icon] || '').replace(/<[^>]+(>|$)/g,''),
|
11867
11935
|
class: className.button + ' ' + cls,
|
11868
11936
|
click: function () {
|
11869
|
-
|
11937
|
+
var button = $(this);
|
11938
|
+
if (button.is(selector.approve) || button.is(selector.deny) || click.call(element, $module) === false) {
|
11870
11939
|
return;
|
11871
11940
|
}
|
11872
11941
|
module.hide();
|
@@ -11877,7 +11946,6 @@ $.fn.modal = function(parameters) {
|
|
11877
11946
|
module.cache = {};
|
11878
11947
|
module.verbose('Initializing dimmer', $context);
|
11879
11948
|
|
11880
|
-
module.create.id();
|
11881
11949
|
module.create.dimmer();
|
11882
11950
|
|
11883
11951
|
if ( settings.allowMultiple ) {
|
@@ -11887,11 +11955,9 @@ $.fn.modal = function(parameters) {
|
|
11887
11955
|
$module.addClass('top aligned');
|
11888
11956
|
}
|
11889
11957
|
module.refreshModals();
|
11890
|
-
|
11958
|
+
module.refreshInputs();
|
11891
11959
|
module.bind.events();
|
11892
|
-
|
11893
|
-
module.observeChanges();
|
11894
|
-
}
|
11960
|
+
module.observeChanges();
|
11895
11961
|
module.instantiate();
|
11896
11962
|
if(settings.autoShow){
|
11897
11963
|
module.show();
|
@@ -11908,16 +11974,20 @@ $.fn.modal = function(parameters) {
|
|
11908
11974
|
|
11909
11975
|
create: {
|
11910
11976
|
modal: function() {
|
11911
|
-
$module = $('<div/>', {class: className.modal});
|
11977
|
+
$module = $('<div/>', {class: className.modal, role: 'dialog', 'aria-modal': true});
|
11912
11978
|
if (settings.closeIcon) {
|
11913
|
-
$
|
11914
|
-
$module.append($
|
11979
|
+
$closeIcon = $('<i/>', {class: className.close, role: 'button', tabindex: 0, 'aria-label': settings.text.close})
|
11980
|
+
$module.append($closeIcon);
|
11915
11981
|
}
|
11916
11982
|
if (settings.title !== '') {
|
11917
|
-
|
11983
|
+
var titleId = '_' + module.get.id() + 'title';
|
11984
|
+
$module.attr('aria-labelledby', titleId);
|
11985
|
+
$('<div/>', {class: className.title, id: titleId}).appendTo($module);
|
11918
11986
|
}
|
11919
11987
|
if (settings.content !== '') {
|
11920
|
-
|
11988
|
+
var descId = '_' + module.get.id() + 'desc';
|
11989
|
+
$module.attr('aria-describedby', descId);
|
11990
|
+
$('<div/>', {class: className.content, id: descId}).appendTo($module);
|
11921
11991
|
}
|
11922
11992
|
if (module.has.configActions()) {
|
11923
11993
|
$('<div/>', {class: className.actions}).appendTo($module);
|
@@ -11948,13 +12018,13 @@ $.fn.modal = function(parameters) {
|
|
11948
12018
|
$dimmer = $dimmable.dimmer('get dimmer');
|
11949
12019
|
},
|
11950
12020
|
id: function() {
|
11951
|
-
id = (Math.random().toString(16) + '000000000').
|
12021
|
+
id = (Math.random().toString(16) + '000000000').slice(2, 10);
|
11952
12022
|
elementEventNamespace = '.' + id;
|
11953
12023
|
module.verbose('Creating unique id for element', id);
|
11954
12024
|
},
|
11955
12025
|
innerDimmer: function() {
|
11956
|
-
if ( $module.find(selector.dimmer).length
|
11957
|
-
$
|
12026
|
+
if ( $module.find(selector.dimmer).length === 0 ) {
|
12027
|
+
$('<div/>', {class: className.innerDimmer}).prependTo($module);
|
11958
12028
|
}
|
11959
12029
|
}
|
11960
12030
|
},
|
@@ -11970,15 +12040,21 @@ $.fn.modal = function(parameters) {
|
|
11970
12040
|
;
|
11971
12041
|
$window.off(elementEventNamespace);
|
11972
12042
|
$dimmer.off(elementEventNamespace);
|
11973
|
-
$
|
12043
|
+
$closeIcon.off(elementEventNamespace);
|
12044
|
+
if($inputs) {
|
12045
|
+
$inputs.off(elementEventNamespace);
|
12046
|
+
}
|
11974
12047
|
$context.dimmer('destroy');
|
11975
12048
|
},
|
11976
12049
|
|
11977
12050
|
observeChanges: function() {
|
11978
12051
|
if('MutationObserver' in window) {
|
11979
12052
|
observer = new MutationObserver(function(mutations) {
|
11980
|
-
|
11981
|
-
|
12053
|
+
if(settings.observeChanges) {
|
12054
|
+
module.debug('DOM tree modified, refreshing');
|
12055
|
+
module.refresh();
|
12056
|
+
}
|
12057
|
+
module.refreshInputs();
|
11982
12058
|
});
|
11983
12059
|
observer.observe(element, {
|
11984
12060
|
childList : true,
|
@@ -12003,6 +12079,23 @@ $.fn.modal = function(parameters) {
|
|
12003
12079
|
$allModals = $otherModals.add($module);
|
12004
12080
|
},
|
12005
12081
|
|
12082
|
+
refreshInputs: function(){
|
12083
|
+
if($inputs){
|
12084
|
+
$inputs
|
12085
|
+
.off('keydown' + elementEventNamespace)
|
12086
|
+
;
|
12087
|
+
}
|
12088
|
+
$inputs = $module.find('[tabindex], :input').filter(':visible').filter(function() {
|
12089
|
+
return $(this).closest('.disabled').length === 0;
|
12090
|
+
});
|
12091
|
+
$inputs.first()
|
12092
|
+
.on('keydown' + elementEventNamespace, module.event.inputKeyDown.first)
|
12093
|
+
;
|
12094
|
+
$inputs.last()
|
12095
|
+
.on('keydown' + elementEventNamespace, module.event.inputKeyDown.last)
|
12096
|
+
;
|
12097
|
+
},
|
12098
|
+
|
12006
12099
|
attachEvents: function(selector, event) {
|
12007
12100
|
var
|
12008
12101
|
$toggle = $(selector)
|
@@ -12031,6 +12124,9 @@ $.fn.modal = function(parameters) {
|
|
12031
12124
|
.on('click' + eventNamespace, selector.approve, module.event.approve)
|
12032
12125
|
.on('click' + eventNamespace, selector.deny, module.event.deny)
|
12033
12126
|
;
|
12127
|
+
$closeIcon
|
12128
|
+
.on('keyup' + elementEventNamespace, module.event.closeKeyUp)
|
12129
|
+
;
|
12034
12130
|
$window
|
12035
12131
|
.on('resize' + elementEventNamespace, module.event.resize)
|
12036
12132
|
;
|
@@ -12049,7 +12145,7 @@ $.fn.modal = function(parameters) {
|
|
12049
12145
|
|
12050
12146
|
get: {
|
12051
12147
|
id: function() {
|
12052
|
-
return
|
12148
|
+
return id;
|
12053
12149
|
},
|
12054
12150
|
element: function() {
|
12055
12151
|
return $module;
|
@@ -12088,10 +12184,38 @@ $.fn.modal = function(parameters) {
|
|
12088
12184
|
close: function() {
|
12089
12185
|
module.hide();
|
12090
12186
|
},
|
12187
|
+
closeKeyUp: function(event){
|
12188
|
+
var
|
12189
|
+
keyCode = event.which
|
12190
|
+
;
|
12191
|
+
if ((keyCode === settings.keys.enter || keyCode === settings.keys.space) && $module.hasClass(className.front)) {
|
12192
|
+
module.hide();
|
12193
|
+
}
|
12194
|
+
},
|
12195
|
+
inputKeyDown: {
|
12196
|
+
first: function(event) {
|
12197
|
+
var
|
12198
|
+
keyCode = event.which
|
12199
|
+
;
|
12200
|
+
if (keyCode === settings.keys.tab && event.shiftKey) {
|
12201
|
+
$inputs.last().focus();
|
12202
|
+
event.preventDefault();
|
12203
|
+
}
|
12204
|
+
},
|
12205
|
+
last: function(event) {
|
12206
|
+
var
|
12207
|
+
keyCode = event.which
|
12208
|
+
;
|
12209
|
+
if (keyCode === settings.keys.tab && !event.shiftKey) {
|
12210
|
+
$inputs.first().focus();
|
12211
|
+
event.preventDefault();
|
12212
|
+
}
|
12213
|
+
}
|
12214
|
+
},
|
12091
12215
|
mousedown: function(event) {
|
12092
12216
|
var
|
12093
12217
|
$target = $(event.target),
|
12094
|
-
isRtl = module.is.rtl()
|
12218
|
+
isRtl = module.is.rtl()
|
12095
12219
|
;
|
12096
12220
|
initialMouseDownInModal = ($target.closest(selector.modal).length > 0);
|
12097
12221
|
if(initialMouseDownInModal) {
|
@@ -12139,10 +12263,9 @@ $.fn.modal = function(parameters) {
|
|
12139
12263
|
},
|
12140
12264
|
keyboard: function(event) {
|
12141
12265
|
var
|
12142
|
-
keyCode = event.which
|
12143
|
-
escapeKey = 27
|
12266
|
+
keyCode = event.which
|
12144
12267
|
;
|
12145
|
-
if(keyCode
|
12268
|
+
if(keyCode === settings.keys.escape) {
|
12146
12269
|
if(settings.closable) {
|
12147
12270
|
module.debug('Escape key pressed hiding modal');
|
12148
12271
|
if ( $module.hasClass(className.front) ) {
|
@@ -12198,6 +12321,10 @@ $.fn.modal = function(parameters) {
|
|
12198
12321
|
: function(){}
|
12199
12322
|
;
|
12200
12323
|
if( module.is.animating() || !module.is.active() ) {
|
12324
|
+
if(settings.onShow.call(element) === false) {
|
12325
|
+
module.verbose('Show callback returned false cancelling show');
|
12326
|
+
return;
|
12327
|
+
}
|
12201
12328
|
module.showDimmer();
|
12202
12329
|
module.cacheSizes();
|
12203
12330
|
module.set.bodyMargin();
|
@@ -12227,7 +12354,6 @@ $.fn.modal = function(parameters) {
|
|
12227
12354
|
$module.detach().appendTo($dimmer);
|
12228
12355
|
}
|
12229
12356
|
}
|
12230
|
-
settings.onShow.call(element);
|
12231
12357
|
if(settings.transition && $.fn.transition !== undefined && $module.transition('is supported')) {
|
12232
12358
|
module.debug('Showing modal with css animations');
|
12233
12359
|
$module
|
@@ -12270,7 +12396,6 @@ $.fn.modal = function(parameters) {
|
|
12270
12396
|
? callback
|
12271
12397
|
: function(){}
|
12272
12398
|
;
|
12273
|
-
module.debug('Hiding modal');
|
12274
12399
|
if(settings.onHide.call(element, $(this)) === false) {
|
12275
12400
|
module.verbose('Hide callback returned false cancelling hide');
|
12276
12401
|
ignoreRepeatedEvents = false;
|
@@ -12278,6 +12403,7 @@ $.fn.modal = function(parameters) {
|
|
12278
12403
|
}
|
12279
12404
|
|
12280
12405
|
if( module.is.animating() || module.is.active() ) {
|
12406
|
+
module.debug('Hiding modal');
|
12281
12407
|
if(settings.transition && $.fn.transition !== undefined && $module.transition('is supported')) {
|
12282
12408
|
module.remove.active();
|
12283
12409
|
$module
|
@@ -12457,7 +12583,7 @@ $.fn.modal = function(parameters) {
|
|
12457
12583
|
$module
|
12458
12584
|
.off('mousedown' + elementEventNamespace)
|
12459
12585
|
;
|
12460
|
-
}
|
12586
|
+
}
|
12461
12587
|
$dimmer
|
12462
12588
|
.off('mousedown' + elementEventNamespace)
|
12463
12589
|
;
|
@@ -12642,13 +12768,10 @@ $.fn.modal = function(parameters) {
|
|
12642
12768
|
set: {
|
12643
12769
|
autofocus: function() {
|
12644
12770
|
var
|
12645
|
-
$inputs = $module.find('[tabindex], :input').filter(':visible').filter(function() {
|
12646
|
-
return $(this).closest('.disabled').length === 0;
|
12647
|
-
}),
|
12648
12771
|
$autofocus = $inputs.filter('[autofocus]'),
|
12649
12772
|
$input = ($autofocus.length > 0)
|
12650
12773
|
? $autofocus.first()
|
12651
|
-
: $inputs.first()
|
12774
|
+
: ($inputs.length > 1 ? $inputs.filter(':not(i.close)') : $inputs).first()
|
12652
12775
|
;
|
12653
12776
|
if($input.length > 0) {
|
12654
12777
|
$input.focus();
|
@@ -12730,7 +12853,7 @@ $.fn.modal = function(parameters) {
|
|
12730
12853
|
? $(document).scrollTop() + settings.padding
|
12731
12854
|
: $(document).scrollTop() + (module.cache.contextHeight - module.cache.height - settings.padding),
|
12732
12855
|
marginLeft: -(module.cache.width / 2)
|
12733
|
-
})
|
12856
|
+
})
|
12734
12857
|
;
|
12735
12858
|
} else {
|
12736
12859
|
$module
|
@@ -12739,7 +12862,7 @@ $.fn.modal = function(parameters) {
|
|
12739
12862
|
? -(module.cache.height / 2)
|
12740
12863
|
: settings.padding / 2,
|
12741
12864
|
marginLeft: -(module.cache.width / 2)
|
12742
|
-
})
|
12865
|
+
})
|
12743
12866
|
;
|
12744
12867
|
}
|
12745
12868
|
module.verbose('Setting modal offset for legacy mode');
|
@@ -13065,11 +13188,19 @@ $.fn.modal.settings = {
|
|
13065
13188
|
// called after deny selector match
|
13066
13189
|
onDeny : function(){ return true; },
|
13067
13190
|
|
13191
|
+
keys : {
|
13192
|
+
space : 32,
|
13193
|
+
enter : 13,
|
13194
|
+
escape : 27,
|
13195
|
+
tab : 9,
|
13196
|
+
},
|
13197
|
+
|
13068
13198
|
selector : {
|
13069
13199
|
title : '> .header',
|
13070
13200
|
content : '> .content',
|
13071
13201
|
actions : '> .actions',
|
13072
13202
|
close : '> .close',
|
13203
|
+
closeIcon: '> .close',
|
13073
13204
|
approve : '.actions .positive, .actions .approve, .actions .ok',
|
13074
13205
|
deny : '.actions .negative, .actions .deny, .actions .cancel',
|
13075
13206
|
modal : '.ui.modal',
|
@@ -13101,11 +13232,13 @@ $.fn.modal.settings = {
|
|
13101
13232
|
template : 'ui tiny modal',
|
13102
13233
|
ok : 'positive',
|
13103
13234
|
cancel : 'negative',
|
13104
|
-
prompt : 'ui fluid input'
|
13235
|
+
prompt : 'ui fluid input',
|
13236
|
+
innerDimmer: 'ui inverted dimmer'
|
13105
13237
|
},
|
13106
13238
|
text: {
|
13107
13239
|
ok : 'Ok',
|
13108
|
-
cancel: 'Cancel'
|
13240
|
+
cancel: 'Cancel',
|
13241
|
+
close : 'Close'
|
13109
13242
|
}
|
13110
13243
|
};
|
13111
13244
|
|
@@ -13131,33 +13264,39 @@ $.fn.modal.settings.templates = {
|
|
13131
13264
|
},
|
13132
13265
|
alert: function () {
|
13133
13266
|
var settings = this.get.settings(),
|
13134
|
-
args = settings.templates.getArguments(arguments)
|
13267
|
+
args = settings.templates.getArguments(arguments),
|
13268
|
+
approveFn = args.handler
|
13135
13269
|
;
|
13136
13270
|
return {
|
13137
13271
|
title : args.title,
|
13138
13272
|
content: args.content,
|
13273
|
+
onApprove: approveFn,
|
13139
13274
|
actions: [{
|
13140
13275
|
text : settings.text.ok,
|
13141
13276
|
class: settings.className.ok,
|
13142
|
-
click:
|
13277
|
+
click: approveFn
|
13143
13278
|
}]
|
13144
13279
|
}
|
13145
13280
|
},
|
13146
13281
|
confirm: function () {
|
13147
13282
|
var settings = this.get.settings(),
|
13148
|
-
args = settings.templates.getArguments(arguments)
|
13283
|
+
args = settings.templates.getArguments(arguments),
|
13284
|
+
approveFn = function(){args.handler(true)},
|
13285
|
+
denyFn = function(){args.handler(false)}
|
13149
13286
|
;
|
13150
13287
|
return {
|
13151
13288
|
title : args.title,
|
13152
13289
|
content: args.content,
|
13290
|
+
onApprove: approveFn,
|
13291
|
+
onDeny: denyFn,
|
13153
13292
|
actions: [{
|
13154
13293
|
text : settings.text.ok,
|
13155
13294
|
class: settings.className.ok,
|
13156
|
-
click:
|
13295
|
+
click: approveFn
|
13157
13296
|
},{
|
13158
13297
|
text: settings.text.cancel,
|
13159
13298
|
class: settings.className.cancel,
|
13160
|
-
click:
|
13299
|
+
click: denyFn
|
13161
13300
|
}]
|
13162
13301
|
}
|
13163
13302
|
},
|
@@ -13165,7 +13304,14 @@ $.fn.modal.settings.templates = {
|
|
13165
13304
|
var $this = this,
|
13166
13305
|
settings = this.get.settings(),
|
13167
13306
|
args = settings.templates.getArguments(arguments),
|
13168
|
-
input = $($.parseHTML(args.content)).filter('.ui.input')
|
13307
|
+
input = $($.parseHTML(args.content)).filter('.ui.input'),
|
13308
|
+
approveFn = function(){
|
13309
|
+
var settings = $this.get.settings(),
|
13310
|
+
inputField = $this.get.element().find(settings.selector.prompt)[0]
|
13311
|
+
;
|
13312
|
+
args.handler($(inputField).val());
|
13313
|
+
},
|
13314
|
+
denyFn = function(){args.handler(null)}
|
13169
13315
|
;
|
13170
13316
|
if (input.length === 0) {
|
13171
13317
|
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 +13319,16 @@ $.fn.modal.settings.templates = {
|
|
13173
13319
|
return {
|
13174
13320
|
title : args.title,
|
13175
13321
|
content: args.content,
|
13322
|
+
onApprove: approveFn,
|
13323
|
+
onDeny: denyFn,
|
13176
13324
|
actions: [{
|
13177
13325
|
text: settings.text.ok,
|
13178
13326
|
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
|
-
}
|
13327
|
+
click: approveFn
|
13185
13328
|
},{
|
13186
13329
|
text: settings.text.cancel,
|
13187
13330
|
class: settings.className.cancel,
|
13188
|
-
click:
|
13331
|
+
click: denyFn
|
13189
13332
|
}]
|
13190
13333
|
}
|
13191
13334
|
}
|
@@ -13194,7 +13337,7 @@ $.fn.modal.settings.templates = {
|
|
13194
13337
|
})( jQuery, window, document );
|
13195
13338
|
|
13196
13339
|
/*!
|
13197
|
-
* # Fomantic-UI 2.9.0-beta.
|
13340
|
+
* # Fomantic-UI 2.9.0-beta.292+4ee9307 - Nag
|
13198
13341
|
* http://github.com/fomantic/Fomantic-UI/
|
13199
13342
|
*
|
13200
13343
|
*
|
@@ -13248,7 +13391,7 @@ $.fn.nag = function(parameters) {
|
|
13248
13391
|
$module = $(this),
|
13249
13392
|
|
13250
13393
|
$context = (settings.context)
|
13251
|
-
? $(settings.context)
|
13394
|
+
? ([window,document].indexOf(settings.context) < 0 ? $(document).find(settings.context) : $(settings.context))
|
13252
13395
|
: $('body'),
|
13253
13396
|
|
13254
13397
|
element = this,
|
@@ -13753,7 +13896,7 @@ $.extend( $.easing, {
|
|
13753
13896
|
})( jQuery, window, document );
|
13754
13897
|
|
13755
13898
|
/*!
|
13756
|
-
* # Fomantic-UI 2.9.0-beta.
|
13899
|
+
* # Fomantic-UI 2.9.0-beta.292+4ee9307 - Popup
|
13757
13900
|
* http://github.com/fomantic/Fomantic-UI/
|
13758
13901
|
*
|
13759
13902
|
*
|
@@ -13816,11 +13959,11 @@ $.fn.popup = function(parameters) {
|
|
13816
13959
|
moduleNamespace = 'module-' + namespace,
|
13817
13960
|
|
13818
13961
|
$module = $(this),
|
13819
|
-
$context = $(settings.context),
|
13820
|
-
$scrollContext = $(settings.scrollContext),
|
13821
|
-
$boundary = $(settings.boundary),
|
13962
|
+
$context = [window,document].indexOf(settings.context) < 0 ? $(document).find(settings.context) : $(settings.context),
|
13963
|
+
$scrollContext = [window,document].indexOf(settings.scrollContext) < 0 ? $(document).find(settings.scrollContext) : $(settings.scrollContext),
|
13964
|
+
$boundary = [window,document].indexOf(settings.boundary) < 0 ? $(document).find(settings.boundary) : $(settings.boundary),
|
13822
13965
|
$target = (settings.target)
|
13823
|
-
? $(settings.target)
|
13966
|
+
? ([window,document].indexOf(settings.target) < 0 ? $(document).find(settings.target) : $(settings.target))
|
13824
13967
|
: $module,
|
13825
13968
|
|
13826
13969
|
$popup,
|
@@ -13875,8 +14018,8 @@ $.fn.popup = function(parameters) {
|
|
13875
14018
|
},
|
13876
14019
|
|
13877
14020
|
refresh: function() {
|
13878
|
-
if(settings.popup) {
|
13879
|
-
$popup = $(settings.popup).eq(0);
|
14021
|
+
if(settings.popup && typeof settings.popup === 'string') {
|
14022
|
+
$popup = $(document).find(settings.popup).eq(0);
|
13880
14023
|
}
|
13881
14024
|
else {
|
13882
14025
|
if(settings.inline) {
|
@@ -14040,8 +14183,8 @@ $.fn.popup = function(parameters) {
|
|
14040
14183
|
}
|
14041
14184
|
settings.onCreate.call($popup, element);
|
14042
14185
|
}
|
14043
|
-
else if(settings.popup) {
|
14044
|
-
$(settings.popup).data(metadata.activator, $module);
|
14186
|
+
else if(settings.popup && typeof settings.popup === 'string') {
|
14187
|
+
$(document).find(settings.popup).data(metadata.activator, $module);
|
14045
14188
|
module.verbose('Used popup specified in settings');
|
14046
14189
|
module.refresh();
|
14047
14190
|
if(settings.hoverable) {
|
@@ -14063,7 +14206,7 @@ $.fn.popup = function(parameters) {
|
|
14063
14206
|
},
|
14064
14207
|
|
14065
14208
|
createID: function() {
|
14066
|
-
id = (Math.random().toString(16) + '000000000').
|
14209
|
+
id = (Math.random().toString(16) + '000000000').slice(2, 10);
|
14067
14210
|
elementNamespace = '.' + id;
|
14068
14211
|
module.verbose('Creating unique id for element', id);
|
14069
14212
|
},
|
@@ -14122,7 +14265,7 @@ $.fn.popup = function(parameters) {
|
|
14122
14265
|
},
|
14123
14266
|
|
14124
14267
|
hideAll: function() {
|
14125
|
-
$(selector.popup)
|
14268
|
+
$(document).find(selector.popup)
|
14126
14269
|
.filter('.' + className.popupVisible)
|
14127
14270
|
.each(function() {
|
14128
14271
|
$(this)
|
@@ -15295,7 +15438,7 @@ $.fn.popup.settings = {
|
|
15295
15438
|
})( jQuery, window, document );
|
15296
15439
|
|
15297
15440
|
/*!
|
15298
|
-
* # Fomantic-UI 2.9.0-beta.
|
15441
|
+
* # Fomantic-UI 2.9.0-beta.292+4ee9307 - Progress
|
15299
15442
|
* http://github.com/fomantic/Fomantic-UI/
|
15300
15443
|
*
|
15301
15444
|
*
|
@@ -15903,6 +16046,9 @@ $.fn.progress = function(parameters) {
|
|
15903
16046
|
}
|
15904
16047
|
else {
|
15905
16048
|
module.remove.active();
|
16049
|
+
module.remove.warning();
|
16050
|
+
module.remove.error();
|
16051
|
+
module.remove.success();
|
15906
16052
|
module.set.label(settings.text.active);
|
15907
16053
|
}
|
15908
16054
|
},
|
@@ -16329,7 +16475,7 @@ $.fn.progress.settings = {
|
|
16329
16475
|
})( jQuery, window, document );
|
16330
16476
|
|
16331
16477
|
/*!
|
16332
|
-
* # Fomantic-UI 2.9.0-beta.
|
16478
|
+
* # Fomantic-UI 2.9.0-beta.292+4ee9307 - Slider
|
16333
16479
|
* http://github.com/fomantic/Fomantic-UI/
|
16334
16480
|
*
|
16335
16481
|
*
|
@@ -16400,6 +16546,7 @@ $.fn.slider = function(parameters) {
|
|
16400
16546
|
|
16401
16547
|
$module = $(this),
|
16402
16548
|
$currThumb,
|
16549
|
+
touchIdentifier,
|
16403
16550
|
$thumb,
|
16404
16551
|
$secondThumb,
|
16405
16552
|
$track,
|
@@ -16416,7 +16563,6 @@ $.fn.slider = function(parameters) {
|
|
16416
16563
|
secondPos,
|
16417
16564
|
offset,
|
16418
16565
|
precision,
|
16419
|
-
isTouch,
|
16420
16566
|
gapRatio = 1,
|
16421
16567
|
previousValue,
|
16422
16568
|
|
@@ -16434,7 +16580,6 @@ $.fn.slider = function(parameters) {
|
|
16434
16580
|
currentRange += 1;
|
16435
16581
|
documentEventID = currentRange;
|
16436
16582
|
|
16437
|
-
isTouch = module.setup.testOutTouch();
|
16438
16583
|
module.setup.layout();
|
16439
16584
|
module.setup.labels();
|
16440
16585
|
|
@@ -16505,14 +16650,6 @@ $.fn.slider = function(parameters) {
|
|
16505
16650
|
}
|
16506
16651
|
}
|
16507
16652
|
},
|
16508
|
-
testOutTouch: function() {
|
16509
|
-
try {
|
16510
|
-
document.createEvent('TouchEvent');
|
16511
|
-
return true;
|
16512
|
-
} catch (e) {
|
16513
|
-
return false;
|
16514
|
-
}
|
16515
|
-
},
|
16516
16653
|
customLabel: function() {
|
16517
16654
|
var
|
16518
16655
|
$children = $labels.find('.label'),
|
@@ -16566,9 +16703,6 @@ $.fn.slider = function(parameters) {
|
|
16566
16703
|
module.bind.globalKeyboardEvents();
|
16567
16704
|
module.bind.keyboardEvents();
|
16568
16705
|
module.bind.mouseEvents();
|
16569
|
-
if(module.is.touch()) {
|
16570
|
-
module.bind.touchEvents();
|
16571
|
-
}
|
16572
16706
|
if (settings.autoAdjustLabels) {
|
16573
16707
|
module.bind.windowEvents();
|
16574
16708
|
}
|
@@ -16581,7 +16715,7 @@ $.fn.slider = function(parameters) {
|
|
16581
16715
|
$(document).on('keydown' + eventNamespace + documentEventID, module.event.activateFocus);
|
16582
16716
|
},
|
16583
16717
|
mouseEvents: function() {
|
16584
|
-
module.verbose('Binding mouse events');
|
16718
|
+
module.verbose('Binding mouse and touch events');
|
16585
16719
|
$module.find('.track, .thumb, .inner').on('mousedown' + eventNamespace, function(event) {
|
16586
16720
|
event.stopImmediatePropagation();
|
16587
16721
|
event.preventDefault();
|
@@ -16594,27 +16728,20 @@ $.fn.slider = function(parameters) {
|
|
16594
16728
|
$module.on('mouseleave' + eventNamespace, function(event) {
|
16595
16729
|
isHover = false;
|
16596
16730
|
});
|
16597
|
-
|
16598
|
-
|
16599
|
-
|
16600
|
-
$module.find('.
|
16601
|
-
event.
|
16602
|
-
event.
|
16603
|
-
module.event.
|
16604
|
-
|
16605
|
-
$module.on('touchstart' + eventNamespace, module.event.down);
|
16731
|
+
// All touch events are invoked on the element where the touch *started*. Thus, we can bind them all
|
16732
|
+
// on the thumb(s) and don't need to worry about interference with other components, i.e. no dynamic binding
|
16733
|
+
// and unbinding required.
|
16734
|
+
$module.find('.thumb')
|
16735
|
+
.on('touchstart' + eventNamespace, module.event.touchDown)
|
16736
|
+
.on('touchmove' + eventNamespace, module.event.move)
|
16737
|
+
.on('touchend' + eventNamespace, module.event.up)
|
16738
|
+
.on('touchcancel' + eventNamespace, module.event.touchCancel);
|
16606
16739
|
},
|
16607
16740
|
slidingEvents: function() {
|
16608
16741
|
// these don't need the identifier because we only ever want one of them to be registered with document
|
16609
16742
|
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
|
-
}
|
16743
|
+
$(document).on('mousemove' + eventNamespace, module.event.move);
|
16744
|
+
$(document).on('mouseup' + eventNamespace, module.event.up);
|
16618
16745
|
},
|
16619
16746
|
windowEvents: function() {
|
16620
16747
|
$window.on('resize' + eventNamespace, module.event.resize);
|
@@ -16624,24 +16751,22 @@ $.fn.slider = function(parameters) {
|
|
16624
16751
|
unbind: {
|
16625
16752
|
events: function() {
|
16626
16753
|
$module.find('.track, .thumb, .inner').off('mousedown' + eventNamespace);
|
16627
|
-
$module.find('.track, .thumb, .inner').off('touchstart' + eventNamespace);
|
16628
16754
|
$module.off('mousedown' + eventNamespace);
|
16629
16755
|
$module.off('mouseenter' + eventNamespace);
|
16630
16756
|
$module.off('mouseleave' + eventNamespace);
|
16631
|
-
$module.
|
16757
|
+
$module.find('.thumb')
|
16758
|
+
.off('touchstart' + eventNamespace)
|
16759
|
+
.off('touchmove' + eventNamespace)
|
16760
|
+
.off('touchend' + eventNamespace)
|
16761
|
+
.off('touchcancel' + eventNamespace);
|
16632
16762
|
$module.off('keydown' + eventNamespace);
|
16633
16763
|
$module.off('focusout' + eventNamespace);
|
16634
16764
|
$(document).off('keydown' + eventNamespace + documentEventID, module.event.activateFocus);
|
16635
16765
|
$window.off('resize' + eventNamespace);
|
16636
16766
|
},
|
16637
16767
|
slidingEvents: function() {
|
16638
|
-
|
16639
|
-
|
16640
|
-
$(document).off('touchend' + eventNamespace);
|
16641
|
-
} else {
|
16642
|
-
$(document).off('mousemove' + eventNamespace);
|
16643
|
-
$(document).off('mouseup' + eventNamespace);
|
16644
|
-
}
|
16768
|
+
$(document).off('mousemove' + eventNamespace);
|
16769
|
+
$(document).off('mouseup' + eventNamespace);
|
16645
16770
|
},
|
16646
16771
|
},
|
16647
16772
|
|
@@ -16671,10 +16796,31 @@ $.fn.slider = function(parameters) {
|
|
16671
16796
|
module.bind.slidingEvents();
|
16672
16797
|
}
|
16673
16798
|
},
|
16799
|
+
touchDown: function(event) {
|
16800
|
+
event.preventDefault(); // disable mouse emulation and touch-scrolling
|
16801
|
+
event.stopImmediatePropagation();
|
16802
|
+
if(touchIdentifier !== undefined) {
|
16803
|
+
// ignore multiple touches on the same slider --
|
16804
|
+
// we cannot handle changing both thumbs at once due to shared state
|
16805
|
+
return;
|
16806
|
+
}
|
16807
|
+
$currThumb = $(event.target);
|
16808
|
+
var touchEvent = event.touches ? event : event.originalEvent;
|
16809
|
+
touchIdentifier = touchEvent.targetTouches[0].identifier;
|
16810
|
+
if(previousValue === undefined) {
|
16811
|
+
previousValue = module.get.currentThumbValue();
|
16812
|
+
}
|
16813
|
+
},
|
16674
16814
|
move: function(event) {
|
16675
|
-
event.
|
16815
|
+
if(event.type == 'mousemove') {
|
16816
|
+
event.preventDefault(); // prevent text selection etc.
|
16817
|
+
}
|
16818
|
+
if(module.is.disabled()) {
|
16819
|
+
// touch events are always bound, so we need to prevent touch-sliding on disabled sliders here
|
16820
|
+
return;
|
16821
|
+
}
|
16676
16822
|
var value = module.determine.valueFromEvent(event);
|
16677
|
-
if($currThumb === undefined) {
|
16823
|
+
if(event.type == 'mousemove' && $currThumb === undefined) {
|
16678
16824
|
var
|
16679
16825
|
eventPos = module.determine.eventPos(event),
|
16680
16826
|
newPos = module.determine.pos(eventPos)
|
@@ -16711,13 +16857,26 @@ $.fn.slider = function(parameters) {
|
|
16711
16857
|
},
|
16712
16858
|
up: function(event) {
|
16713
16859
|
event.preventDefault();
|
16860
|
+
if(module.is.disabled()) {
|
16861
|
+
// touch events are always bound, so we need to prevent touch-sliding on disabled sliders here
|
16862
|
+
return;
|
16863
|
+
}
|
16714
16864
|
var value = module.determine.valueFromEvent(event);
|
16715
16865
|
module.set.value(value);
|
16716
16866
|
module.unbind.slidingEvents();
|
16867
|
+
touchIdentifier = undefined;
|
16717
16868
|
if (previousValue !== undefined) {
|
16718
16869
|
previousValue = undefined;
|
16719
16870
|
}
|
16720
16871
|
},
|
16872
|
+
touchCancel: function(event) {
|
16873
|
+
event.preventDefault();
|
16874
|
+
touchIdentifier = undefined;
|
16875
|
+
if (previousValue !== undefined) {
|
16876
|
+
module.update.value(previousValue);
|
16877
|
+
previousValue = undefined;
|
16878
|
+
}
|
16879
|
+
},
|
16721
16880
|
keydown: function(event, first) {
|
16722
16881
|
if(settings.preventCrossover && module.is.range() && module.thumbVal === module.secondThumbVal) {
|
16723
16882
|
$currThumb = undefined;
|
@@ -16830,9 +16989,6 @@ $.fn.slider = function(parameters) {
|
|
16830
16989
|
},
|
16831
16990
|
smooth: function() {
|
16832
16991
|
return settings.smooth || $module.hasClass(settings.className.smooth);
|
16833
|
-
},
|
16834
|
-
touch: function() {
|
16835
|
-
return isTouch;
|
16836
16992
|
}
|
16837
16993
|
},
|
16838
16994
|
|
@@ -17096,12 +17252,19 @@ $.fn.slider = function(parameters) {
|
|
17096
17252
|
return value;
|
17097
17253
|
},
|
17098
17254
|
eventPos: function(event) {
|
17099
|
-
if(
|
17255
|
+
if(event.type === "touchmove" || event.type === "touchend") {
|
17100
17256
|
var
|
17101
|
-
touchEvent = event.
|
17102
|
-
|
17103
|
-
|
17104
|
-
|
17257
|
+
touchEvent = event.touches ? event : event.originalEvent,
|
17258
|
+
touch = touchEvent.changedTouches[0]; // fall back to first touch if correct touch not found
|
17259
|
+
for(var i=0; i < touchEvent.touches.length; i++) {
|
17260
|
+
if(touchEvent.touches[i].identifier === touchIdentifier) {
|
17261
|
+
touch = touchEvent.touches[i];
|
17262
|
+
break;
|
17263
|
+
}
|
17264
|
+
}
|
17265
|
+
var
|
17266
|
+
touchY = touch.pageY,
|
17267
|
+
touchX = touch.pageX
|
17105
17268
|
;
|
17106
17269
|
return module.is.vertical() ? touchY : touchX;
|
17107
17270
|
}
|
@@ -17668,7 +17831,7 @@ $.fn.slider.settings = {
|
|
17668
17831
|
})( jQuery, window, document );
|
17669
17832
|
|
17670
17833
|
/*!
|
17671
|
-
* # Fomantic-UI 2.9.0-beta.
|
17834
|
+
* # Fomantic-UI 2.9.0-beta.292+4ee9307 - Rating
|
17672
17835
|
* http://github.com/fomantic/Fomantic-UI/
|
17673
17836
|
*
|
17674
17837
|
*
|
@@ -18223,7 +18386,7 @@ $.fn.rating.settings = {
|
|
18223
18386
|
})( jQuery, window, document );
|
18224
18387
|
|
18225
18388
|
/*!
|
18226
|
-
* # Fomantic-UI 2.9.0-beta.
|
18389
|
+
* # Fomantic-UI 2.9.0-beta.292+4ee9307 - Search
|
18227
18390
|
* http://github.com/fomantic/Fomantic-UI/
|
18228
18391
|
*
|
18229
18392
|
*
|
@@ -18627,7 +18790,7 @@ $.fn.search = function(parameters) {
|
|
18627
18790
|
return $results.hasClass(className.animating);
|
18628
18791
|
},
|
18629
18792
|
chrome: function() {
|
18630
|
-
return !!window.chrome &&
|
18793
|
+
return !!window.chrome && !window.StyleMedia;
|
18631
18794
|
},
|
18632
18795
|
hidden: function() {
|
18633
18796
|
return $results.hasClass(className.hidden);
|
@@ -19791,7 +19954,7 @@ $.fn.search.settings = {
|
|
19791
19954
|
})( jQuery, window, document );
|
19792
19955
|
|
19793
19956
|
/*!
|
19794
|
-
* # Fomantic-UI 2.9.0-beta.
|
19957
|
+
* # Fomantic-UI 2.9.0-beta.292+4ee9307 - Shape
|
19795
19958
|
* http://github.com/fomantic/Fomantic-UI/
|
19796
19959
|
*
|
19797
19960
|
*
|
@@ -19918,7 +20081,7 @@ $.fn.shape = function(parameters) {
|
|
19918
20081
|
module.reset();
|
19919
20082
|
module.set.active();
|
19920
20083
|
};
|
19921
|
-
settings.
|
20084
|
+
settings.onBeforeChange.call($nextSide[0]);
|
19922
20085
|
if(module.get.transitionEvent()) {
|
19923
20086
|
module.verbose('Starting CSS animation');
|
19924
20087
|
$module
|
@@ -20605,7 +20768,7 @@ $.fn.shape.settings = {
|
|
20605
20768
|
height: 'initial',
|
20606
20769
|
|
20607
20770
|
// callback occurs on side change
|
20608
|
-
|
20771
|
+
onBeforeChange : function() {},
|
20609
20772
|
onChange : function() {},
|
20610
20773
|
|
20611
20774
|
// allow animation to same side
|
@@ -20640,7 +20803,7 @@ $.fn.shape.settings = {
|
|
20640
20803
|
})( jQuery, window, document );
|
20641
20804
|
|
20642
20805
|
/*!
|
20643
|
-
* # Fomantic-UI 2.9.0-beta.
|
20806
|
+
* # Fomantic-UI 2.9.0-beta.292+4ee9307 - Sidebar
|
20644
20807
|
* http://github.com/fomantic/Fomantic-UI/
|
20645
20808
|
*
|
20646
20809
|
*
|
@@ -20707,7 +20870,7 @@ $.fn.sidebar = function(parameters) {
|
|
20707
20870
|
moduleNamespace = 'module-' + namespace,
|
20708
20871
|
|
20709
20872
|
$module = $(this),
|
20710
|
-
$context = $(settings.context),
|
20873
|
+
$context = [window,document].indexOf(settings.context) < 0 ? $(document).find(settings.context) : $(settings.context),
|
20711
20874
|
|
20712
20875
|
$sidebars = $module.children(selector.sidebar),
|
20713
20876
|
$fixed = $context.children(selector.fixed),
|
@@ -20759,7 +20922,7 @@ $.fn.sidebar = function(parameters) {
|
|
20759
20922
|
|
20760
20923
|
create: {
|
20761
20924
|
id: function() {
|
20762
|
-
id = (Math.random().toString(16) + '000000000').
|
20925
|
+
id = (Math.random().toString(16) + '000000000').slice(2, 10);
|
20763
20926
|
elementNamespace = '.' + id;
|
20764
20927
|
module.verbose('Creating unique id for element', id);
|
20765
20928
|
}
|
@@ -20902,7 +21065,7 @@ $.fn.sidebar = function(parameters) {
|
|
20902
21065
|
if(direction === 'left' || direction === 'right') {
|
20903
21066
|
module.debug('Adding CSS rules for animation distance', width);
|
20904
21067
|
style += ''
|
20905
|
-
+ ' body.pushable > .ui.visible.' + direction + '.sidebar ~ .pusher
|
21068
|
+
+ ' body.pushable > .ui.visible.' + direction + '.sidebar ~ .pusher::after {'
|
20906
21069
|
+ ' -webkit-transform: translate3d('+ distance[direction] + 'px, 0, 0);'
|
20907
21070
|
+ ' transform: translate3d('+ distance[direction] + 'px, 0, 0);'
|
20908
21071
|
+ ' }'
|
@@ -20910,7 +21073,7 @@ $.fn.sidebar = function(parameters) {
|
|
20910
21073
|
}
|
20911
21074
|
else if(direction === 'top' || direction == 'bottom') {
|
20912
21075
|
style += ''
|
20913
|
-
+ ' body.pushable > .ui.visible.' + direction + '.sidebar ~ .pusher
|
21076
|
+
+ ' body.pushable > .ui.visible.' + direction + '.sidebar ~ .pusher::after {'
|
20914
21077
|
+ ' -webkit-transform: translate3d(0, ' + distance[direction] + 'px, 0);'
|
20915
21078
|
+ ' transform: translate3d(0, ' + distance[direction] + 'px, 0);'
|
20916
21079
|
+ ' }'
|
@@ -20918,8 +21081,8 @@ $.fn.sidebar = function(parameters) {
|
|
20918
21081
|
}
|
20919
21082
|
/* opposite sides visible forces content overlay */
|
20920
21083
|
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
|
21084
|
+
+ ' body.pushable > .ui.visible.left.sidebar ~ .ui.visible.right.sidebar ~ .pusher::after,'
|
21085
|
+
+ ' body.pushable > .ui.visible.right.sidebar ~ .ui.visible.left.sidebar ~ .pusher::after {'
|
20923
21086
|
+ ' -webkit-transform: translate3d(0, 0, 0);'
|
20924
21087
|
+ ' transform: translate3d(0, 0, 0);'
|
20925
21088
|
+ ' }'
|
@@ -20935,7 +21098,7 @@ $.fn.sidebar = function(parameters) {
|
|
20935
21098
|
|
20936
21099
|
refresh: function() {
|
20937
21100
|
module.verbose('Refreshing selector cache');
|
20938
|
-
$context = $(settings.context);
|
21101
|
+
$context = [window,document].indexOf(settings.context) < 0 ? $(document).find(settings.context) : $(settings.context);
|
20939
21102
|
$sidebars = $context.children(selector.sidebar);
|
20940
21103
|
$pusher = $context.children(selector.pusher);
|
20941
21104
|
$fixed = $context.children(selector.fixed);
|
@@ -21012,6 +21175,10 @@ $.fn.sidebar = function(parameters) {
|
|
21012
21175
|
: function(){}
|
21013
21176
|
;
|
21014
21177
|
if(module.is.hidden()) {
|
21178
|
+
if(settings.onShow.call(element) === false) {
|
21179
|
+
module.verbose('Show callback returned false cancelling show');
|
21180
|
+
return;
|
21181
|
+
}
|
21015
21182
|
module.refreshSidebars();
|
21016
21183
|
if(settings.overlay) {
|
21017
21184
|
module.error(error.overlay);
|
@@ -21036,10 +21203,9 @@ $.fn.sidebar = function(parameters) {
|
|
21036
21203
|
}
|
21037
21204
|
module.pushPage(function() {
|
21038
21205
|
callback.call(element);
|
21039
|
-
settings.
|
21206
|
+
settings.onVisible.call(element);
|
21040
21207
|
});
|
21041
21208
|
settings.onChange.call(element);
|
21042
|
-
settings.onVisible.call(element);
|
21043
21209
|
}
|
21044
21210
|
else {
|
21045
21211
|
module.debug('Sidebar is already visible');
|
@@ -21051,7 +21217,7 @@ $.fn.sidebar = function(parameters) {
|
|
21051
21217
|
? callback
|
21052
21218
|
: function(){}
|
21053
21219
|
;
|
21054
|
-
if(module.is.visible() || module.is.animating()) {
|
21220
|
+
if((module.is.visible() || module.is.animating()) && settings.onHide.call(element) !== false) {
|
21055
21221
|
module.debug('Hiding sidebar', callback);
|
21056
21222
|
module.refreshSidebars();
|
21057
21223
|
module.pullPage(function() {
|
@@ -21059,7 +21225,6 @@ $.fn.sidebar = function(parameters) {
|
|
21059
21225
|
settings.onHidden.call(element);
|
21060
21226
|
});
|
21061
21227
|
settings.onChange.call(element);
|
21062
|
-
settings.onHide.call(element);
|
21063
21228
|
}
|
21064
21229
|
},
|
21065
21230
|
|
@@ -21677,7 +21842,7 @@ $.fn.sidebar.settings = {
|
|
21677
21842
|
})( jQuery, window, document );
|
21678
21843
|
|
21679
21844
|
/*!
|
21680
|
-
* # Fomantic-UI 2.9.0-beta.
|
21845
|
+
* # Fomantic-UI 2.9.0-beta.292+4ee9307 - Sticky
|
21681
21846
|
* http://github.com/fomantic/Fomantic-UI/
|
21682
21847
|
*
|
21683
21848
|
*
|
@@ -21731,7 +21896,7 @@ $.fn.sticky = function(parameters) {
|
|
21731
21896
|
|
21732
21897
|
$module = $(this),
|
21733
21898
|
$window = $(window),
|
21734
|
-
$scroll = $(settings.scrollContext),
|
21899
|
+
$scroll = [window,document].indexOf(settings.scrollContext) < 0 ? $(document).find(settings.scrollContext) : $(settings.scrollContext),
|
21735
21900
|
$container,
|
21736
21901
|
$context,
|
21737
21902
|
|
@@ -21817,7 +21982,7 @@ $.fn.sticky = function(parameters) {
|
|
21817
21982
|
|
21818
21983
|
determineContainer: function() {
|
21819
21984
|
if(settings.container) {
|
21820
|
-
$container = $(settings.container);
|
21985
|
+
$container = [window,document].indexOf(settings.container) < 0 ? $(document).find(settings.container) : $(settings.container);
|
21821
21986
|
}
|
21822
21987
|
else {
|
21823
21988
|
$container = $module.offsetParent();
|
@@ -21826,7 +21991,7 @@ $.fn.sticky = function(parameters) {
|
|
21826
21991
|
|
21827
21992
|
determineContext: function() {
|
21828
21993
|
if(settings.context) {
|
21829
|
-
$context = $(settings.context);
|
21994
|
+
$context = [window,document].indexOf(settings.context) < 0 ? $(document).find(settings.context) : $(settings.context);
|
21830
21995
|
}
|
21831
21996
|
else {
|
21832
21997
|
$context = $container;
|
@@ -22635,7 +22800,7 @@ $.fn.sticky.settings = {
|
|
22635
22800
|
})( jQuery, window, document );
|
22636
22801
|
|
22637
22802
|
/*!
|
22638
|
-
* # Fomantic-UI 2.9.0-beta.
|
22803
|
+
* # Fomantic-UI 2.9.0-beta.292+4ee9307 - Tab
|
22639
22804
|
* http://github.com/fomantic/Fomantic-UI/
|
22640
22805
|
*
|
22641
22806
|
*
|
@@ -22736,10 +22901,18 @@ $.fn.tab = function(parameters) {
|
|
22736
22901
|
initializedHistory = true;
|
22737
22902
|
}
|
22738
22903
|
|
22739
|
-
|
22740
|
-
|
22741
|
-
|
22742
|
-
|
22904
|
+
var activeTab = module.determine.activeTab();
|
22905
|
+
if(settings.autoTabActivation && instance === undefined && activeTab == null) {
|
22906
|
+
activeTab = settings.autoTabActivation === true ? module.get.initialPath() : settings.autoTabActivation;
|
22907
|
+
module.debug('No active tab detected, setting tab active', activeTab);
|
22908
|
+
module.changeTab(activeTab);
|
22909
|
+
}
|
22910
|
+
if(activeTab != null && settings.history) {
|
22911
|
+
var autoUpdate = $.address.autoUpdate();
|
22912
|
+
$.address.autoUpdate(false);
|
22913
|
+
$.address.value(activeTab);
|
22914
|
+
$.address.autoUpdate(autoUpdate);
|
22915
|
+
}
|
22743
22916
|
|
22744
22917
|
module.instantiate();
|
22745
22918
|
},
|
@@ -22790,7 +22963,7 @@ $.fn.tab = function(parameters) {
|
|
22790
22963
|
module.verbose('Determined parent element for creating context', $context);
|
22791
22964
|
}
|
22792
22965
|
else if(settings.context) {
|
22793
|
-
$context = $(settings.context);
|
22966
|
+
$context = [window,document].indexOf(settings.context) < 0 ? $(document).find(settings.context) : $(settings.context);
|
22794
22967
|
module.verbose('Using selector for tab context', settings.context, $context);
|
22795
22968
|
}
|
22796
22969
|
else {
|
@@ -22839,6 +23012,7 @@ $.fn.tab = function(parameters) {
|
|
22839
23012
|
.history(true)
|
22840
23013
|
.state(settings.path)
|
22841
23014
|
;
|
23015
|
+
$(window).trigger('popstate');
|
22842
23016
|
}
|
22843
23017
|
else {
|
22844
23018
|
module.error(error.path);
|
@@ -23006,6 +23180,10 @@ $.fn.tab = function(parameters) {
|
|
23006
23180
|
module.verbose('Tab parameters found', nextPathArray);
|
23007
23181
|
}
|
23008
23182
|
}
|
23183
|
+
if (settings.onBeforeChange.call(element, currentPath) === false) {
|
23184
|
+
module.debug('onBeforeChange returned false, cancelling tab change', $tab);
|
23185
|
+
return false;
|
23186
|
+
}
|
23009
23187
|
if(isLastTab && remoteContent) {
|
23010
23188
|
if(!shouldIgnoreLoad) {
|
23011
23189
|
module.activate.navigation(currentPath);
|
@@ -23042,6 +23220,10 @@ $.fn.tab = function(parameters) {
|
|
23042
23220
|
// if anchor exists use parent tab
|
23043
23221
|
if($anchor && $anchor.length > 0 && currentPath) {
|
23044
23222
|
module.debug('Anchor link used, opening parent tab', $tab, $anchor);
|
23223
|
+
if (settings.onBeforeChange.call(element, currentPath) === false) {
|
23224
|
+
module.debug('onBeforeChange returned false, cancelling tab change', $tab);
|
23225
|
+
return false;
|
23226
|
+
}
|
23045
23227
|
if( !$tab.hasClass(className.active) ) {
|
23046
23228
|
setTimeout(function() {
|
23047
23229
|
module.scrollTo($anchor);
|
@@ -23595,6 +23777,7 @@ $.fn.tab.settings = {
|
|
23595
23777
|
onLoad : function(tabPath, parameterArray, historyEvent) {}, // called on every load
|
23596
23778
|
onVisible : function(tabPath, parameterArray, historyEvent) {}, // called every time tab visible
|
23597
23779
|
onRequest : function(tabPath, parameterArray, historyEvent) {}, // called ever time a tab beings loading remote content
|
23780
|
+
onBeforeChange: function(tabPath) {}, // called before a tab is about to be changed. Returning false will cancel the tab change
|
23598
23781
|
|
23599
23782
|
templates : {
|
23600
23783
|
determineTitle: function(tabArray) {} // returns page title for path
|
@@ -23637,7 +23820,7 @@ $.fn.tab.settings = {
|
|
23637
23820
|
})( jQuery, window, document );
|
23638
23821
|
|
23639
23822
|
/*!
|
23640
|
-
* # Fomantic-UI 2.9.0-beta.
|
23823
|
+
* # Fomantic-UI 2.9.0-beta.292+4ee9307 - Toast
|
23641
23824
|
* http://github.com/fomantic/Fomantic-UI/
|
23642
23825
|
*
|
23643
23826
|
*
|
@@ -23699,7 +23882,7 @@ $.fn.toast = function(parameters) {
|
|
23699
23882
|
$animationObject,
|
23700
23883
|
$close,
|
23701
23884
|
$context = (settings.context)
|
23702
|
-
? $(settings.context)
|
23885
|
+
? ([window,document].indexOf(settings.context) < 0 ? $(document).find(settings.context) : $(settings.context))
|
23703
23886
|
: $('body'),
|
23704
23887
|
|
23705
23888
|
isToastComponent = $module.hasClass('toast') || $module.hasClass('message') || $module.hasClass('card'),
|
@@ -23707,12 +23890,14 @@ $.fn.toast = function(parameters) {
|
|
23707
23890
|
element = this,
|
23708
23891
|
instance = isToastComponent ? $module.data(moduleNamespace) : undefined,
|
23709
23892
|
|
23893
|
+
id,
|
23710
23894
|
module
|
23711
23895
|
;
|
23712
23896
|
module = {
|
23713
23897
|
|
23714
23898
|
initialize: function() {
|
23715
23899
|
module.verbose('Initializing element');
|
23900
|
+
module.create.id();
|
23716
23901
|
if (!module.has.container()) {
|
23717
23902
|
module.create.container();
|
23718
23903
|
}
|
@@ -23762,17 +23947,22 @@ $.fn.toast = function(parameters) {
|
|
23762
23947
|
},
|
23763
23948
|
|
23764
23949
|
show: function(callback) {
|
23765
|
-
callback = callback || function(){};
|
23766
|
-
module.debug('Showing toast');
|
23767
23950
|
if(settings.onShow.call($toastBox, element) === false) {
|
23768
23951
|
module.debug('onShow callback returned false, cancelling toast animation');
|
23769
23952
|
return;
|
23770
23953
|
}
|
23954
|
+
callback = callback || function(){};
|
23955
|
+
module.debug('Showing toast');
|
23771
23956
|
module.animate.show(callback);
|
23772
23957
|
},
|
23773
23958
|
|
23774
23959
|
close: function(callback) {
|
23960
|
+
if(settings.onHide.call($toastBox, element) === false) {
|
23961
|
+
module.debug('onHide callback returned false, cancelling toast animation');
|
23962
|
+
return;
|
23963
|
+
}
|
23775
23964
|
callback = callback || function(){};
|
23965
|
+
module.debug('Closing toast');
|
23776
23966
|
module.remove.visible();
|
23777
23967
|
module.unbind.events();
|
23778
23968
|
module.animate.close(callback);
|
@@ -23782,14 +23972,18 @@ $.fn.toast = function(parameters) {
|
|
23782
23972
|
create: {
|
23783
23973
|
container: function() {
|
23784
23974
|
module.verbose('Creating container');
|
23785
|
-
$context.append($('<div/>',{class: settings.position + ' ' + className.container + ' ' +(settings.horizontal ? className.horizontal : '')}));
|
23975
|
+
$context.append($('<div/>',{class: settings.position + ' ' + className.container + ' ' +(settings.horizontal ? className.horizontal : '') + ' ' + (settings.context && settings.context !== 'body' ? className.absolute : '')}));
|
23976
|
+
},
|
23977
|
+
id: function() {
|
23978
|
+
id = (Math.random().toString(16) + '000000000').slice(2, 10);
|
23979
|
+
module.verbose('Creating unique id for element', id);
|
23786
23980
|
},
|
23787
23981
|
toast: function() {
|
23788
23982
|
$toastBox = $('<div/>', {class: className.box});
|
23789
23983
|
var iconClass = module.get.iconClass();
|
23790
23984
|
if (!isToastComponent) {
|
23791
23985
|
module.verbose('Creating toast');
|
23792
|
-
$toast = $('<div/>');
|
23986
|
+
$toast = $('<div/>', {role: 'alert'});
|
23793
23987
|
var $content = $('<div/>', {class: className.content});
|
23794
23988
|
if (iconClass !== '') {
|
23795
23989
|
$toast.append($('<i/>', {class: iconClass + ' ' + className.icon}));
|
@@ -23802,13 +23996,21 @@ $.fn.toast = function(parameters) {
|
|
23802
23996
|
}));
|
23803
23997
|
}
|
23804
23998
|
if (settings.title !== '') {
|
23999
|
+
var titleId = '_' + module.get.id() + 'title';
|
24000
|
+
$toast.attr('aria-labelledby', titleId);
|
23805
24001
|
$content.append($('<div/>', {
|
23806
24002
|
class: className.title,
|
23807
|
-
|
24003
|
+
id: titleId,
|
24004
|
+
html: module.helpers.escape(settings.title, settings.preserveHTML)
|
23808
24005
|
}));
|
23809
24006
|
}
|
23810
|
-
|
23811
|
-
$
|
24007
|
+
var descId = '_' + module.get.id() + 'desc';
|
24008
|
+
$toast.attr('aria-describedby', descId);
|
24009
|
+
$content.append($('<div/>', {
|
24010
|
+
class: className.message,
|
24011
|
+
id: descId,
|
24012
|
+
html: module.helpers.escape(settings.message, settings.preserveHTML)
|
24013
|
+
}));
|
23812
24014
|
|
23813
24015
|
$toast
|
23814
24016
|
.addClass(settings.class + ' ' + className.toast)
|
@@ -23816,7 +24018,7 @@ $.fn.toast = function(parameters) {
|
|
23816
24018
|
;
|
23817
24019
|
$toast.css('opacity', settings.opacity);
|
23818
24020
|
if (settings.closeIcon) {
|
23819
|
-
$close = $('<i/>', {class: className.close + ' ' + (typeof settings.closeIcon === 'string' ? settings.closeIcon : '')});
|
24021
|
+
$close = $('<i/>', {class: className.close + ' ' + (typeof settings.closeIcon === 'string' ? settings.closeIcon : ''), role: 'button', tabindex: 0, 'aria-label': settings.text.close});
|
23820
24022
|
if($close.hasClass(className.left)) {
|
23821
24023
|
$toast.prepend($close);
|
23822
24024
|
} else {
|
@@ -23859,15 +24061,17 @@ $.fn.toast = function(parameters) {
|
|
23859
24061
|
}
|
23860
24062
|
}
|
23861
24063
|
settings.actions.forEach(function (el) {
|
23862
|
-
var icon = el[fields.icon] ? '<i class="' + module.helpers.deQuote(el[fields.icon]) + ' icon"></i>' : '',
|
24064
|
+
var icon = el[fields.icon] ? '<i '+(el[fields.text] ? 'aria-hidden="true"' : '')+' class="' + module.helpers.deQuote(el[fields.icon]) + ' icon"></i>' : '',
|
23863
24065
|
text = module.helpers.escape(el[fields.text] || '', settings.preserveHTML),
|
23864
24066
|
cls = module.helpers.deQuote(el[fields.class] || ''),
|
23865
24067
|
click = el[fields.click] && $.isFunction(el[fields.click]) ? el[fields.click] : function () {};
|
23866
24068
|
$actions.append($('<button/>', {
|
23867
24069
|
html: icon + text,
|
24070
|
+
'aria-label': (el[fields.text] || el[fields.icon] || '').replace(/<[^>]+(>|$)/g,''),
|
23868
24071
|
class: className.button + ' ' + cls,
|
23869
24072
|
click: function () {
|
23870
|
-
|
24073
|
+
var button = $(this);
|
24074
|
+
if (button.is(selector.approve) || button.is(selector.deny) || click.call(element, $module) === false) {
|
23871
24075
|
return;
|
23872
24076
|
}
|
23873
24077
|
module.close();
|
@@ -23967,13 +24171,12 @@ $.fn.toast = function(parameters) {
|
|
23967
24171
|
bind: {
|
23968
24172
|
events: function() {
|
23969
24173
|
module.debug('Binding events to toast');
|
23970
|
-
if(settings.
|
23971
|
-
(
|
23972
|
-
.on('click' + eventNamespace, module.event.click)
|
23973
|
-
;
|
24174
|
+
if(settings.closeIcon) {
|
24175
|
+
$close.on('click' + eventNamespace, module.event.close);
|
23974
24176
|
}
|
24177
|
+
$toast.on('click' + eventNamespace, module.event.click);
|
23975
24178
|
if($animationObject) {
|
23976
|
-
$animationObject.on('animationend' + eventNamespace, module.close);
|
24179
|
+
$animationObject.on('animationend' + eventNamespace, module.event.close);
|
23977
24180
|
}
|
23978
24181
|
$toastBox
|
23979
24182
|
.on('click' + eventNamespace, selector.approve, module.event.approve)
|
@@ -23985,11 +24188,10 @@ $.fn.toast = function(parameters) {
|
|
23985
24188
|
unbind: {
|
23986
24189
|
events: function() {
|
23987
24190
|
module.debug('Unbinding events to toast');
|
23988
|
-
if(settings.
|
23989
|
-
|
23990
|
-
.off('click' + eventNamespace)
|
23991
|
-
;
|
24191
|
+
if(settings.closeIcon) {
|
24192
|
+
$close.off('click' + eventNamespace);
|
23992
24193
|
}
|
24194
|
+
$toast.off('click' + eventNamespace);
|
23993
24195
|
if($animationObject) {
|
23994
24196
|
$animationObject.off('animationend' + eventNamespace);
|
23995
24197
|
}
|
@@ -24021,11 +24223,6 @@ $.fn.toast = function(parameters) {
|
|
24021
24223
|
},
|
24022
24224
|
close: function(callback) {
|
24023
24225
|
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
24226
|
if(settings.transition && $.fn.transition !== undefined && $module.transition('is supported')) {
|
24030
24227
|
$toastBox
|
24031
24228
|
.transition({
|
@@ -24081,7 +24278,7 @@ $.fn.toast = function(parameters) {
|
|
24081
24278
|
has: {
|
24082
24279
|
container: function() {
|
24083
24280
|
module.verbose('Determining if there is already a container');
|
24084
|
-
return
|
24281
|
+
return module.get.containers().length > 0;
|
24085
24282
|
},
|
24086
24283
|
toast: function(){
|
24087
24284
|
return !!module.get.toast();
|
@@ -24095,8 +24292,14 @@ $.fn.toast = function(parameters) {
|
|
24095
24292
|
},
|
24096
24293
|
|
24097
24294
|
get: {
|
24295
|
+
id: function() {
|
24296
|
+
return id;
|
24297
|
+
},
|
24298
|
+
containers: function() {
|
24299
|
+
return $context.children(module.helpers.toClass(settings.position) + selector.container + (settings.horizontal ? module.helpers.toClass(className.horizontal) : ':not('+module.helpers.toClass(className.horizontal)+')') + (settings.context && settings.context !== 'body' ? module.helpers.toClass(className.absolute) : ':not('+module.helpers.toClass(className.absolute)+')'));
|
24300
|
+
},
|
24098
24301
|
container: function() {
|
24099
|
-
return
|
24302
|
+
return module.get.containers()[0];
|
24100
24303
|
},
|
24101
24304
|
toastBox: function() {
|
24102
24305
|
return $toastBox || null;
|
@@ -24128,9 +24331,15 @@ $.fn.toast = function(parameters) {
|
|
24128
24331
|
},
|
24129
24332
|
|
24130
24333
|
event: {
|
24334
|
+
close: function(){
|
24335
|
+
module.close();
|
24336
|
+
},
|
24131
24337
|
click: function(event) {
|
24132
|
-
if($(event.target).closest(
|
24133
|
-
settings.onClick.call($toastBox, element)
|
24338
|
+
if($(event.target).closest(selector.clickable).length === 0) {
|
24339
|
+
if(settings.onClick.call($toastBox, element) === false || !settings.closeOnClick) {
|
24340
|
+
module.verbose('Click callback returned false or close denied by setting cancelling close');
|
24341
|
+
return;
|
24342
|
+
}
|
24134
24343
|
module.close();
|
24135
24344
|
}
|
24136
24345
|
},
|
@@ -24153,7 +24362,7 @@ $.fn.toast = function(parameters) {
|
|
24153
24362
|
helpers: {
|
24154
24363
|
toClass: function(selector) {
|
24155
24364
|
var
|
24156
|
-
classes = selector.split(
|
24365
|
+
classes = selector.trim().split(/\s+/),
|
24157
24366
|
result = ''
|
24158
24367
|
;
|
24159
24368
|
|
@@ -24443,6 +24652,7 @@ $.fn.toast.settings = {
|
|
24443
24652
|
|
24444
24653
|
className : {
|
24445
24654
|
container : 'ui toast-container',
|
24655
|
+
absolute : 'absolute',
|
24446
24656
|
box : 'floating toast-box',
|
24447
24657
|
progress : 'ui attached active progress',
|
24448
24658
|
toast : 'ui toast',
|
@@ -24471,6 +24681,10 @@ $.fn.toast.settings = {
|
|
24471
24681
|
unclickable : 'unclickable'
|
24472
24682
|
},
|
24473
24683
|
|
24684
|
+
text: {
|
24685
|
+
close : 'Close'
|
24686
|
+
},
|
24687
|
+
|
24474
24688
|
icons : {
|
24475
24689
|
info : 'info',
|
24476
24690
|
success : 'checkmark',
|
@@ -24487,6 +24701,7 @@ $.fn.toast.settings = {
|
|
24487
24701
|
image : '> img.image, > .image > img',
|
24488
24702
|
icon : '> i.icon',
|
24489
24703
|
input : 'input:not([type="hidden"]), textarea, select, button, .ui.button, ui.dropdown',
|
24704
|
+
clickable : 'a, details, .ui.accordion',
|
24490
24705
|
approve : '.actions .positive, .actions .approve, .actions .ok',
|
24491
24706
|
deny : '.actions .negative, .actions .deny, .actions .cancel'
|
24492
24707
|
},
|
@@ -24530,7 +24745,7 @@ $.extend( $.easing, {
|
|
24530
24745
|
})( jQuery, window, document );
|
24531
24746
|
|
24532
24747
|
/*!
|
24533
|
-
* # Fomantic-UI 2.9.0-beta.
|
24748
|
+
* # Fomantic-UI 2.9.0-beta.292+4ee9307 - Transition
|
24534
24749
|
* http://github.com/fomantic/Fomantic-UI/
|
24535
24750
|
*
|
24536
24751
|
*
|
@@ -25302,6 +25517,10 @@ $.fn.transition = function() {
|
|
25302
25517
|
},
|
25303
25518
|
|
25304
25519
|
hide: function() {
|
25520
|
+
if(settings.onHide.call(element) === false) {
|
25521
|
+
module.verbose('Hide callback returned false cancelling hide');
|
25522
|
+
return false;
|
25523
|
+
}
|
25305
25524
|
module.verbose('Hiding element');
|
25306
25525
|
if( module.is.animating() ) {
|
25307
25526
|
module.reset();
|
@@ -25309,35 +25528,32 @@ $.fn.transition = function() {
|
|
25309
25528
|
element.blur(); // IE will trigger focus change if element is not blurred before hiding
|
25310
25529
|
module.remove.display();
|
25311
25530
|
module.remove.visible();
|
25312
|
-
|
25313
|
-
settings.onBeforeHide.call(element,function(){
|
25314
|
-
module.hideNow();
|
25315
|
-
});
|
25316
|
-
} else {
|
25317
|
-
module.hideNow();
|
25318
|
-
}
|
25319
|
-
|
25531
|
+
settings.onBeforeHide.call(element, module.hideNow);
|
25320
25532
|
},
|
25321
25533
|
|
25322
25534
|
hideNow: function() {
|
25323
25535
|
module.set.hidden();
|
25324
25536
|
module.force.hidden();
|
25325
|
-
settings.
|
25537
|
+
settings.onHidden.call(element);
|
25326
25538
|
settings.onComplete.call(element);
|
25327
25539
|
// module.repaint();
|
25328
25540
|
},
|
25329
25541
|
|
25330
25542
|
show: function(display) {
|
25331
|
-
module.
|
25332
|
-
|
25543
|
+
if(module.force.visible() && settings.onShow.call(element) !== false) {
|
25544
|
+
module.verbose('Showing element', display);
|
25333
25545
|
module.remove.hidden();
|
25334
|
-
|
25335
|
-
settings.onShow.call(element);
|
25336
|
-
settings.onComplete.call(element);
|
25337
|
-
// module.repaint();
|
25546
|
+
settings.onBeforeShow.call(element, module.showNow);
|
25338
25547
|
}
|
25339
25548
|
},
|
25340
25549
|
|
25550
|
+
showNow: function(){
|
25551
|
+
module.set.visible();
|
25552
|
+
settings.onVisible.call(element);
|
25553
|
+
settings.onComplete.call(element);
|
25554
|
+
// module.repaint();
|
25555
|
+
},
|
25556
|
+
|
25341
25557
|
toggle: function() {
|
25342
25558
|
if( module.is.visible() ) {
|
25343
25559
|
module.hide();
|
@@ -25586,7 +25802,11 @@ $.fn.transition.settings = {
|
|
25586
25802
|
onStart : function() {},
|
25587
25803
|
onComplete : function() {},
|
25588
25804
|
onShow : function() {},
|
25805
|
+
onBeforeShow : function(callback) {callback.call(this)},
|
25806
|
+
onVisible : function() {},
|
25589
25807
|
onHide : function() {},
|
25808
|
+
onHidden : function() {},
|
25809
|
+
onBeforeHide : function(callback) {callback.call(this)},
|
25590
25810
|
|
25591
25811
|
// whether timeout should be used to ensure callback fires in cases animationend does not
|
25592
25812
|
useFailSafe : true,
|
@@ -25640,7 +25860,7 @@ $.fn.transition.settings = {
|
|
25640
25860
|
})( jQuery, window, document );
|
25641
25861
|
|
25642
25862
|
/*!
|
25643
|
-
* # Fomantic-UI 2.9.0-beta.
|
25863
|
+
* # Fomantic-UI 2.9.0-beta.292+4ee9307 - API
|
25644
25864
|
* http://github.com/fomantic/Fomantic-UI/
|
25645
25865
|
*
|
25646
25866
|
*
|
@@ -25706,7 +25926,7 @@ $.api = $.fn.api = function(parameters) {
|
|
25706
25926
|
|
25707
25927
|
// context used for state
|
25708
25928
|
$context = (settings.stateContext)
|
25709
|
-
? $(settings.stateContext)
|
25929
|
+
? ([window,document].indexOf(settings.stateContext) < 0 ? $(document).find(settings.stateContext) : $(settings.stateContext))
|
25710
25930
|
: $module,
|
25711
25931
|
|
25712
25932
|
// request details
|
@@ -25715,6 +25935,7 @@ $.api = $.fn.api = function(parameters) {
|
|
25715
25935
|
url,
|
25716
25936
|
data,
|
25717
25937
|
requestStartTime,
|
25938
|
+
originalData,
|
25718
25939
|
|
25719
25940
|
// standard module
|
25720
25941
|
element = this,
|
@@ -25727,6 +25948,7 @@ $.api = $.fn.api = function(parameters) {
|
|
25727
25948
|
|
25728
25949
|
initialize: function() {
|
25729
25950
|
if(!methodInvoked) {
|
25951
|
+
originalData = settings.data;
|
25730
25952
|
module.bind.events();
|
25731
25953
|
}
|
25732
25954
|
module.instantiate();
|
@@ -25789,8 +26011,8 @@ $.api = $.fn.api = function(parameters) {
|
|
25789
26011
|
module.error(error.noStorage);
|
25790
26012
|
return;
|
25791
26013
|
}
|
25792
|
-
response = sessionStorage.getItem(url);
|
25793
|
-
module.debug('Using cached response', url, response);
|
26014
|
+
response = sessionStorage.getItem(url + module.get.normalizedData());
|
26015
|
+
module.debug('Using cached response', url, settings.data, response);
|
25794
26016
|
response = module.decode.json(response);
|
25795
26017
|
return response;
|
25796
26018
|
}
|
@@ -25808,8 +26030,8 @@ $.api = $.fn.api = function(parameters) {
|
|
25808
26030
|
if( $.isPlainObject(response) ) {
|
25809
26031
|
response = JSON.stringify(response);
|
25810
26032
|
}
|
25811
|
-
sessionStorage.setItem(url, response);
|
25812
|
-
module.verbose('Storing cached response for url', url, response);
|
26033
|
+
sessionStorage.setItem(url + module.get.normalizedData(), response);
|
26034
|
+
module.verbose('Storing cached response for url', url, settings.data, response);
|
25813
26035
|
}
|
25814
26036
|
},
|
25815
26037
|
|
@@ -25838,7 +26060,7 @@ $.api = $.fn.api = function(parameters) {
|
|
25838
26060
|
|
25839
26061
|
// Add form content
|
25840
26062
|
if(settings.serializeForm) {
|
25841
|
-
settings.data = module.add.formData(settings.data);
|
26063
|
+
settings.data = module.add.formData(originalData || settings.data);
|
25842
26064
|
}
|
25843
26065
|
|
25844
26066
|
// call beforesend and get any settings changes
|
@@ -25975,10 +26197,6 @@ $.api = $.fn.api = function(parameters) {
|
|
25975
26197
|
cancelled: function() {
|
25976
26198
|
return (module.cancelled || false);
|
25977
26199
|
},
|
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
26200
|
successful: function() {
|
25983
26201
|
return (module.request && module.request.state() == 'resolved');
|
25984
26202
|
},
|
@@ -26006,8 +26224,8 @@ $.api = $.fn.api = function(parameters) {
|
|
26006
26224
|
var
|
26007
26225
|
// allow legacy {$var} style
|
26008
26226
|
variable = (templatedString.indexOf('$') !== -1)
|
26009
|
-
? templatedString.
|
26010
|
-
: templatedString.
|
26227
|
+
? templatedString.slice(2, -1)
|
26228
|
+
: templatedString.slice(1, -1),
|
26011
26229
|
value = ($.isPlainObject(urlData) && urlData[variable] !== undefined)
|
26012
26230
|
? urlData[variable]
|
26013
26231
|
: ($module.data(variable) !== undefined)
|
@@ -26038,8 +26256,8 @@ $.api = $.fn.api = function(parameters) {
|
|
26038
26256
|
var
|
26039
26257
|
// allow legacy {/$var} style
|
26040
26258
|
variable = (templatedString.indexOf('$') !== -1)
|
26041
|
-
? templatedString.
|
26042
|
-
: templatedString.
|
26259
|
+
? templatedString.slice(3, -1)
|
26260
|
+
: templatedString.slice(2, -1),
|
26043
26261
|
value = ($.isPlainObject(urlData) && urlData[variable] !== undefined)
|
26044
26262
|
? urlData[variable]
|
26045
26263
|
: ($module.data(variable) !== undefined)
|
@@ -26070,24 +26288,76 @@ $.api = $.fn.api = function(parameters) {
|
|
26070
26288
|
},
|
26071
26289
|
formData: function(data) {
|
26072
26290
|
var
|
26073
|
-
|
26074
|
-
|
26075
|
-
|
26076
|
-
: $form.serialize(),
|
26077
|
-
hasOtherData
|
26291
|
+
formData = {},
|
26292
|
+
hasOtherData,
|
26293
|
+
useFormDataApi = settings.serializeForm === 'formdata'
|
26078
26294
|
;
|
26079
|
-
data = data || settings.data;
|
26295
|
+
data = data || originalData || settings.data;
|
26080
26296
|
hasOtherData = $.isPlainObject(data);
|
26081
26297
|
|
26298
|
+
if (useFormDataApi) {
|
26299
|
+
formData = new FormData($form[0]);
|
26300
|
+
settings.processData = typeof settings.processData !== 'undefined' ? settings.processData : false;
|
26301
|
+
settings.contentType = typeof settings.contentType !== 'undefined' ? settings.contentType : false;
|
26302
|
+
} else {
|
26303
|
+
var formArray = $form.serializeArray(),
|
26304
|
+
pushes = {},
|
26305
|
+
pushValues= {},
|
26306
|
+
build = function(base, key, value) {
|
26307
|
+
base[key] = value;
|
26308
|
+
return base;
|
26309
|
+
}
|
26310
|
+
;
|
26311
|
+
// add files
|
26312
|
+
$.each($('input[type="file"]',$form), function(i, tag) {
|
26313
|
+
$.each($(tag)[0].files, function(j, file) {
|
26314
|
+
formArray.push({name:tag.name, value: file});
|
26315
|
+
});
|
26316
|
+
});
|
26317
|
+
$.each(formArray, function(i, el) {
|
26318
|
+
if (!settings.regExp.validate.test(el.name)) return;
|
26319
|
+
var isCheckbox = $('[name="' + el.name + '"]', $form).attr('type') === 'checkbox',
|
26320
|
+
floatValue = parseFloat(el.value),
|
26321
|
+
value = (isCheckbox && el.value === 'on') || el.value === 'true' || (String(floatValue) === el.value ? floatValue : (el.value === 'false' ? false : el.value)),
|
26322
|
+
nameKeys = el.name.match(settings.regExp.key) || [], k, pushKey= el.name.replace(/\[\]$/,'')
|
26323
|
+
;
|
26324
|
+
if(!(pushKey in pushes)) {
|
26325
|
+
pushes[pushKey] = 0;
|
26326
|
+
pushValues[pushKey] = value;
|
26327
|
+
} else if (Array.isArray(pushValues[pushKey])) {
|
26328
|
+
pushValues[pushKey].push(value);
|
26329
|
+
} else {
|
26330
|
+
pushValues[pushKey] = [pushValues[pushKey] , value];
|
26331
|
+
}
|
26332
|
+
value = pushValues[pushKey];
|
26333
|
+
|
26334
|
+
while ((k = nameKeys.pop()) !== undefined) {
|
26335
|
+
// foo[]
|
26336
|
+
if (k == '' && !Array.isArray(value)){
|
26337
|
+
value = build([], pushes[pushKey]++, value);
|
26338
|
+
}
|
26339
|
+
// foo[n]
|
26340
|
+
else if (settings.regExp.fixed.test(k)) {
|
26341
|
+
value = build([], k, value);
|
26342
|
+
}
|
26343
|
+
// foo; foo[bar]
|
26344
|
+
else if (settings.regExp.named.test(k)) {
|
26345
|
+
value = build({}, k, value);
|
26346
|
+
}
|
26347
|
+
}
|
26348
|
+
formData = $.extend(true, formData, value);
|
26349
|
+
});
|
26350
|
+
}
|
26351
|
+
|
26082
26352
|
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);
|
26353
|
+
module.debug('Extending existing data with form data', data, formData);
|
26354
|
+
if(useFormDataApi) {
|
26355
|
+
$.each(Object.keys(data),function(i, el){
|
26356
|
+
formData.append(el, data[el]);
|
26357
|
+
});
|
26090
26358
|
data = formData;
|
26359
|
+
} else {
|
26360
|
+
data = $.extend(true, {}, data, formData);
|
26091
26361
|
}
|
26092
26362
|
}
|
26093
26363
|
else {
|
@@ -26339,6 +26609,9 @@ $.api = $.fn.api = function(parameters) {
|
|
26339
26609
|
},
|
26340
26610
|
|
26341
26611
|
get: {
|
26612
|
+
normalizedData: function(){
|
26613
|
+
return typeof settings.data === "string" ? settings.data : JSON.stringify(settings.data, Object.keys(settings.data).sort());
|
26614
|
+
},
|
26342
26615
|
responseFromXHR: function(xhr) {
|
26343
26616
|
return $.isPlainObject(xhr)
|
26344
26617
|
? (module.is.expectingJSON())
|
@@ -26724,6 +26997,8 @@ $.api.settings = {
|
|
26724
26997
|
defaultData : true,
|
26725
26998
|
|
26726
26999
|
// whether to serialize closest form
|
27000
|
+
// use true to convert complex named keys like a[b][1][c][] into a nested object
|
27001
|
+
// use 'formdata' for formdata web api
|
26727
27002
|
serializeForm : false,
|
26728
27003
|
|
26729
27004
|
// how long to wait before request should occur
|
@@ -26746,7 +27021,7 @@ $.api.settings = {
|
|
26746
27021
|
responseAsync : false,
|
26747
27022
|
|
26748
27023
|
// whether onResponse should work with response value without force converting into an object
|
26749
|
-
rawResponse :
|
27024
|
+
rawResponse : true,
|
26750
27025
|
|
26751
27026
|
// callbacks before request
|
26752
27027
|
beforeSend : function(settings) { return settings; },
|
@@ -26782,7 +27057,6 @@ $.api.settings = {
|
|
26782
27057
|
legacyParameters : 'You are using legacy API success callback names',
|
26783
27058
|
method : 'The method you called is not defined',
|
26784
27059
|
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
27060
|
missingURL : 'No URL specified for api event',
|
26787
27061
|
noReturnedValue : 'The beforeSend callback must return a settings object, beforeSend ignored.',
|
26788
27062
|
noStorage : 'Caching responses locally requires session storage',
|
@@ -26795,6 +27069,11 @@ $.api.settings = {
|
|
26795
27069
|
regExp : {
|
26796
27070
|
required : /\{\$*[A-z0-9]+\}/g,
|
26797
27071
|
optional : /\{\/\$*[A-z0-9]+\}/g,
|
27072
|
+
validate: /^[a-z_][a-z0-9_-]*(?:\[[a-z0-9_-]*\])*$/i,
|
27073
|
+
key: /[a-z0-9_-]+|(?=\[\])/gi,
|
27074
|
+
push: /^$/,
|
27075
|
+
fixed: /^\d+$/,
|
27076
|
+
named: /^[a-z0-9_-]+$/i
|
26798
27077
|
},
|
26799
27078
|
|
26800
27079
|
className: {
|
@@ -26818,7 +27097,7 @@ $.api.settings = {
|
|
26818
27097
|
})( jQuery, window, document );
|
26819
27098
|
|
26820
27099
|
/*!
|
26821
|
-
* # Fomantic-UI 2.9.0-beta.
|
27100
|
+
* # Fomantic-UI 2.9.0-beta.292+4ee9307 - State
|
26822
27101
|
* http://github.com/fomantic/Fomantic-UI/
|
26823
27102
|
*
|
26824
27103
|
*
|
@@ -26893,7 +27172,7 @@ $.fn.state = function(parameters) {
|
|
26893
27172
|
|
26894
27173
|
// bind events with delegated events
|
26895
27174
|
if(settings.context && moduleSelector !== '') {
|
26896
|
-
$(settings.context)
|
27175
|
+
([window,document].indexOf(settings.context) < 0 ? $(document).find(settings.context) : $(settings.context))
|
26897
27176
|
.on(moduleSelector, 'mouseenter' + eventNamespace, module.change.text)
|
26898
27177
|
.on(moduleSelector, 'mouseleave' + eventNamespace, module.reset.text)
|
26899
27178
|
.on(moduleSelector, 'click' + eventNamespace, module.toggle.state)
|
@@ -27530,7 +27809,7 @@ $.fn.state.settings = {
|
|
27530
27809
|
})( jQuery, window, document );
|
27531
27810
|
|
27532
27811
|
/*!
|
27533
|
-
* # Fomantic-UI 2.9.0-beta.
|
27812
|
+
* # Fomantic-UI 2.9.0-beta.292+4ee9307 - Visibility
|
27534
27813
|
* http://github.com/fomantic/Fomantic-UI/
|
27535
27814
|
*
|
27536
27815
|
*
|
@@ -27589,7 +27868,7 @@ $.fn.visibility = function(parameters) {
|
|
27589
27868
|
$window = $(window),
|
27590
27869
|
|
27591
27870
|
$module = $(this),
|
27592
|
-
$context = $(settings.context),
|
27871
|
+
$context = [window,document].indexOf(settings.context) < 0 ? $(document).find(settings.context) : $(settings.context),
|
27593
27872
|
|
27594
27873
|
$placeholder,
|
27595
27874
|
|