fomantic-ui 2.9.0-beta.3 → 2.9.0-beta.301
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 +251 -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/CONTRIBUTING.md +1 -1
- package/CONTRIBUTORS.md +82 -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 +90 -31
- 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 +189 -76
- 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 +152 -117
- 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 +110 -78
- 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 +29 -4
- 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 +103 -105
- 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 +6 -3
- package/dist/components/progress.min.css +1 -1
- package/dist/components/progress.min.js +3 -3
- package/dist/components/rail.css +1 -1
- package/dist/components/rail.min.css +1 -1
- package/dist/components/rating.css +7 -46
- package/dist/components/rating.js +1 -1
- package/dist/components/rating.min.css +2 -2
- package/dist/components/rating.min.js +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 +23 -7
- 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 +32 -32
- package/dist/components/step.min.css +2 -2
- package/dist/components/sticky.css +1 -1
- package/dist/components/sticky.js +5 -5
- 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 +48 -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 +22 -17
- package/dist/components/transition.min.css +1 -1
- package/dist/components/transition.min.js +3 -3
- package/dist/components/visibility.js +3 -3
- package/dist/components/visibility.min.js +3 -3
- package/dist/semantic.css +20204 -13425
- package/dist/semantic.js +883 -481
- 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 +11 -11
- package/examples/assets/library/iframe.js +6 -6
- 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 +89 -30
- package/src/definitions/behaviors/form.js +38 -29
- package/src/definitions/behaviors/state.js +1 -1
- package/src/definitions/behaviors/visibility.js +2 -2
- package/src/definitions/collections/form.less +229 -165
- package/src/definitions/collections/grid.less +723 -687
- package/src/definitions/collections/menu.less +233 -171
- 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 +188 -75
- 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 +151 -116
- 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 +66 -33
- 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 +90 -90
- package/src/definitions/modules/progress.js +5 -2
- package/src/definitions/modules/progress.less +19 -18
- package/src/definitions/modules/rating.less +49 -42
- package/src/definitions/modules/search.js +22 -6
- 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 +4 -4
- 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 +56 -16
- package/src/definitions/modules/transition.js +21 -16
- 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 +4 -4
- package/src/themes/default/globals/site.variables +109 -8
- package/src/themes/default/globals/variation.variables +145 -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 +14 -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/components/init.js +2 -2
- package/tasks/admin/distributions/create.js +1 -1
- package/tasks/admin/distributions/init.js +2 -2
- 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.301+42e68bc
|
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.301+42e68bc - 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.301+42e68bc - 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.301+42e68bc - 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.301+42e68bc - 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) {
|
@@ -3348,7 +3360,10 @@ $.fn.calendar = function(parameters) {
|
|
3348
3360
|
module.refreshTooltips();
|
3349
3361
|
return settings.onVisible.apply($container, arguments);
|
3350
3362
|
};
|
3351
|
-
var onHidden =
|
3363
|
+
var onHidden = function () {
|
3364
|
+
module.blur();
|
3365
|
+
return settings.onHidden.apply($container, arguments)
|
3366
|
+
}
|
3352
3367
|
if (!$input.length) {
|
3353
3368
|
//no input, $container has to handle focus/blur
|
3354
3369
|
$container.attr('tabindex', '0');
|
@@ -3357,10 +3372,6 @@ $.fn.calendar = function(parameters) {
|
|
3357
3372
|
module.focus();
|
3358
3373
|
return settings.onVisible.apply($container, arguments);
|
3359
3374
|
};
|
3360
|
-
onHidden = function () {
|
3361
|
-
module.blur();
|
3362
|
-
return settings.onHidden.apply($container, arguments);
|
3363
|
-
};
|
3364
3375
|
}
|
3365
3376
|
var onShow = function () {
|
3366
3377
|
//reset the focus date onShow
|
@@ -3518,7 +3529,7 @@ $.fn.calendar = function(parameters) {
|
|
3518
3529
|
var headerDate = isYear || isMonth ? new Date(year, 0, 1) :
|
3519
3530
|
isDay ? new Date(year, month, 1) : new Date(year, month, day, hour, minute);
|
3520
3531
|
var headerText = $('<span/>').addClass(className.link).appendTo(cell);
|
3521
|
-
headerText.text(
|
3532
|
+
headerText.text(module.helper.dateFormat(formatter[mode+'Header'], headerDate));
|
3522
3533
|
var newMode = isMonth ? (settings.disableYear ? 'day' : 'year') :
|
3523
3534
|
isDay ? (settings.disableMonth ? 'year' : 'month') : 'day';
|
3524
3535
|
headerText.data(metadata.mode, newMode);
|
@@ -3566,7 +3577,7 @@ $.fn.calendar = function(parameters) {
|
|
3566
3577
|
isHour ? new Date(year, month, day, i) : new Date(year, month, day, hour, i * settings.minTimeGap);
|
3567
3578
|
var cellText = isYear ? i :
|
3568
3579
|
isMonth ? settings.text.monthsShort[i] : isDay ? cellDate.getDate() :
|
3569
|
-
|
3580
|
+
module.helper.dateFormat(formatter.cellTime,cellDate);
|
3570
3581
|
cell = $('<td/>').addClass(className.cell).appendTo(row);
|
3571
3582
|
cell.text(cellText);
|
3572
3583
|
cell.data(metadata.date, cellDate);
|
@@ -3585,6 +3596,19 @@ $.fn.calendar = function(parameters) {
|
|
3585
3596
|
cell.attr("data-variation", disabledDate[metadata.variation]);
|
3586
3597
|
}
|
3587
3598
|
}
|
3599
|
+
if (mode === 'hour') {
|
3600
|
+
var disabledHour = module.helper.findHourAsObject(cellDate, mode, settings.disabledHours);
|
3601
|
+
if (disabledHour !== null && disabledHour[metadata.message]) {
|
3602
|
+
cell.attr("data-tooltip", disabledHour[metadata.message]);
|
3603
|
+
cell.attr("data-position", disabledHour[metadata.position] || tooltipPosition);
|
3604
|
+
if(disabledHour[metadata.inverted] || (isInverted && disabledHour[metadata.inverted] === undefined)) {
|
3605
|
+
cell.attr("data-inverted", '');
|
3606
|
+
}
|
3607
|
+
if(disabledHour[metadata.variation]) {
|
3608
|
+
cell.attr("data-variation", disabledHour[metadata.variation]);
|
3609
|
+
}
|
3610
|
+
}
|
3611
|
+
}
|
3588
3612
|
} else {
|
3589
3613
|
eventDate = module.helper.findDayAsObject(cellDate, mode, settings.eventDates);
|
3590
3614
|
if (eventDate !== null) {
|
@@ -3685,7 +3709,7 @@ $.fn.calendar = function(parameters) {
|
|
3685
3709
|
var winWidth = $(window).width();
|
3686
3710
|
$container.find('td[data-position]').each(function () {
|
3687
3711
|
var cell = $(this);
|
3688
|
-
var tooltipWidth = window.getComputedStyle(cell[0], '
|
3712
|
+
var tooltipWidth = window.getComputedStyle(cell[0], '::after').width.replace(/[^0-9\.]/g,'');
|
3689
3713
|
var tooltipPosition = cell.attr('data-position');
|
3690
3714
|
// use a fallback width of 250 (calendar width) for IE/Edge (which return "auto")
|
3691
3715
|
var calcPosition = (winWidth - cell.width() - (parseInt(tooltipWidth,10) || 250)) > cell.offset().left ? 'right' : 'left';
|
@@ -3834,7 +3858,7 @@ $.fn.calendar = function(parameters) {
|
|
3834
3858
|
$container.removeClass(className.active);
|
3835
3859
|
if (settings.formatInput) {
|
3836
3860
|
var date = module.get.date();
|
3837
|
-
var text = formatter.
|
3861
|
+
var text = module.helper.dateFormat(formatter[settings.type], date);
|
3838
3862
|
$input.val(text);
|
3839
3863
|
}
|
3840
3864
|
if(selectionComplete){
|
@@ -3905,6 +3929,9 @@ $.fn.calendar = function(parameters) {
|
|
3905
3929
|
return AWN - Math.floor(Date.UTC(Wyr, 0, 7) / ms7d) + 1;
|
3906
3930
|
}();
|
3907
3931
|
},
|
3932
|
+
formattedDate: function(format, date) {
|
3933
|
+
return module.helper.dateFormat(format || formatter[settings.type], date || module.get.date());
|
3934
|
+
},
|
3908
3935
|
date: function () {
|
3909
3936
|
return module.helper.sanitiseDate($module.data(metadata.date)) || null;
|
3910
3937
|
},
|
@@ -3929,7 +3956,7 @@ $.fn.calendar = function(parameters) {
|
|
3929
3956
|
return $module.data(metadata.maxDate) || null;
|
3930
3957
|
},
|
3931
3958
|
monthOffset: function () {
|
3932
|
-
return $module.data(metadata.monthOffset) || 0;
|
3959
|
+
return $module.data(metadata.monthOffset) || settings.monthOffset || 0;
|
3933
3960
|
},
|
3934
3961
|
mode: function () {
|
3935
3962
|
//only returns valid modes for the current settings
|
@@ -3983,7 +4010,7 @@ $.fn.calendar = function(parameters) {
|
|
3983
4010
|
return null;
|
3984
4011
|
}
|
3985
4012
|
if (!(selector instanceof $)) {
|
3986
|
-
selector = $(selector).first();
|
4013
|
+
selector = $(document).find(selector).first();
|
3987
4014
|
}
|
3988
4015
|
//assume range related calendars are using the same namespace
|
3989
4016
|
return selector.data(moduleNamespace);
|
@@ -3998,7 +4025,7 @@ $.fn.calendar = function(parameters) {
|
|
3998
4025
|
date = module.helper.dateInRange(date);
|
3999
4026
|
|
4000
4027
|
var mode = module.get.mode();
|
4001
|
-
var text = formatter.
|
4028
|
+
var text = module.helper.dateFormat(formatter[settings.type],date);
|
4002
4029
|
|
4003
4030
|
if (fireChange && settings.onBeforeChange.call(element, date, text, mode) === false) {
|
4004
4031
|
return false;
|
@@ -4169,8 +4196,62 @@ $.fn.calendar = function(parameters) {
|
|
4169
4196
|
},
|
4170
4197
|
|
4171
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
|
+
},
|
4172
4253
|
isDisabled: function(date, mode) {
|
4173
|
-
return (mode === 'day' || mode === 'month' || mode === 'year') && ((mode === 'day' && settings.disabledDaysOfWeek.indexOf(date.getDay()) !== -1) || settings.disabledDates.some(function(d){
|
4254
|
+
return (mode === 'day' || mode === 'month' || mode === 'year' || mode === 'hour') && (((mode === 'day' && settings.disabledDaysOfWeek.indexOf(date.getDay()) !== -1) || settings.disabledDates.some(function(d){
|
4174
4255
|
if(typeof d === 'string') {
|
4175
4256
|
d = module.helper.sanitiseDate(d);
|
4176
4257
|
}
|
@@ -4203,7 +4284,45 @@ $.fn.calendar = function(parameters) {
|
|
4203
4284
|
}
|
4204
4285
|
}
|
4205
4286
|
}
|
4206
|
-
}))
|
4287
|
+
})) || (mode === 'hour' && settings.disabledHours.some(function(d){
|
4288
|
+
if (typeof d === 'string') {
|
4289
|
+
d = module.helper.sanitiseDate(d);
|
4290
|
+
}
|
4291
|
+
if (d instanceof Date) {
|
4292
|
+
return module.helper.dateEqual(date, d, mode);
|
4293
|
+
} else if (typeof d === 'number') {
|
4294
|
+
return date.getHours() === d;
|
4295
|
+
}
|
4296
|
+
if (d !== null && typeof d === 'object') {
|
4297
|
+
var blocked = true;
|
4298
|
+
|
4299
|
+
if (d[metadata.date]) {
|
4300
|
+
if (d[metadata.date] instanceof Date) {
|
4301
|
+
blocked = module.helper.dateEqual(date, module.helper.sanitiseDate(d[metadata.date]));
|
4302
|
+
} else if (Array.isArray(d[metadata.date])) {
|
4303
|
+
return d[metadata.date].some(function(idate) {
|
4304
|
+
blocked = module.helper.dateEqual(date, idate, mode);
|
4305
|
+
});
|
4306
|
+
}
|
4307
|
+
}
|
4308
|
+
|
4309
|
+
if (d[metadata.days]) {
|
4310
|
+
if (typeof d[metadata.days] === 'number') {
|
4311
|
+
blocked = date.getDay() == d[metadata.days];
|
4312
|
+
} else if (Array.isArray(d[metadata.days])) {
|
4313
|
+
blocked = d[metadata.days].indexOf(date.getDay()) > -1;
|
4314
|
+
}
|
4315
|
+
}
|
4316
|
+
|
4317
|
+
if (d[metadata.hours]) {
|
4318
|
+
if (typeof d[metadata.hours] === 'number') {
|
4319
|
+
return blocked && date.getHours() == d[metadata.hours];
|
4320
|
+
} else if (Array.isArray(d[metadata.hours])) {
|
4321
|
+
return blocked && d[metadata.hours].indexOf(date.getHours()) > -1;
|
4322
|
+
}
|
4323
|
+
}
|
4324
|
+
}
|
4325
|
+
})));
|
4207
4326
|
},
|
4208
4327
|
isEnabled: function(date, mode) {
|
4209
4328
|
if (mode === 'day') {
|
@@ -4271,6 +4390,49 @@ $.fn.calendar = function(parameters) {
|
|
4271
4390
|
}
|
4272
4391
|
return null;
|
4273
4392
|
},
|
4393
|
+
findHourAsObject: function(date, mode, hours) {
|
4394
|
+
if (mode === 'hour') {
|
4395
|
+
var d;
|
4396
|
+
var hourCheck = function(date, d) {
|
4397
|
+
if (d[metadata.hours]) {
|
4398
|
+
if (typeof d[metadata.hours] === 'number' && date.getHours() == d[metadata.hours]) {
|
4399
|
+
return d;
|
4400
|
+
} else if (Array.isArray(d[metadata.hours])) {
|
4401
|
+
if (d[metadata.hours].indexOf(date.getHours()) > -1) {
|
4402
|
+
return d;
|
4403
|
+
}
|
4404
|
+
}
|
4405
|
+
}
|
4406
|
+
}
|
4407
|
+
for (var i = 0; i < hours.length; i++) {
|
4408
|
+
d = hours[i];
|
4409
|
+
if (typeof d === 'number' && date.getHours() == d) {
|
4410
|
+
return null;
|
4411
|
+
} else if (d !== null && typeof d === 'object') {
|
4412
|
+
if (d[metadata.days] && hourCheck(date,d)) {
|
4413
|
+
if (typeof d[metadata.days] === 'number' && date.getDay() == d[metadata.days]) {
|
4414
|
+
return d;
|
4415
|
+
} else if (Array.isArray(d[metadata.days])) {
|
4416
|
+
if (d[metadata.days].indexOf(date.getDay()) > -1) {
|
4417
|
+
return d;
|
4418
|
+
}
|
4419
|
+
}
|
4420
|
+
} else if (d[metadata.date] && hourCheck(date,d)) {
|
4421
|
+
if (d[metadata.date] instanceof Date && module.helper.dateEqual(date, module.helper.sanitiseDate(d[metadata.date]))) {
|
4422
|
+
return d;
|
4423
|
+
} else if (Array.isArray(d[metadata.date])) {
|
4424
|
+
if (d[metadata.date].some(function(idate) { return module.helper.dateEqual(date, idate, mode); })) {
|
4425
|
+
return d;
|
4426
|
+
}
|
4427
|
+
}
|
4428
|
+
} else if (hourCheck(date,d)) {
|
4429
|
+
return d;
|
4430
|
+
}
|
4431
|
+
}
|
4432
|
+
}
|
4433
|
+
}
|
4434
|
+
return null;
|
4435
|
+
},
|
4274
4436
|
sanitiseDate: function (date) {
|
4275
4437
|
if (!(date instanceof Date)) {
|
4276
4438
|
date = parser.date('' + date, settings);
|
@@ -4538,7 +4700,7 @@ $.fn.calendar.settings = {
|
|
4538
4700
|
constantHeight : true, // add rows to shorter months to keep day calendar height consistent (6 rows)
|
4539
4701
|
today : false, // show a 'today/now' button at the bottom of the calendar
|
4540
4702
|
closable : true, // close the popup after selecting a date/time
|
4541
|
-
monthFirst : true, // month before day when parsing
|
4703
|
+
monthFirst : true, // month before day when parsing date from text
|
4542
4704
|
touchReadonly : true, // set input to readonly on touch devices
|
4543
4705
|
inline : false, // create the calendar inline instead of inside a popup
|
4544
4706
|
on : null, // when to show the popup (defaults to 'focus' for input, 'click' for others)
|
@@ -4546,7 +4708,6 @@ $.fn.calendar.settings = {
|
|
4546
4708
|
startMode : false, // display mode to start in, can be 'year', 'month', 'day', 'hour', 'minute' (false = 'day')
|
4547
4709
|
minDate : null, // minimum date/time that can be selected, dates/times before are disabled
|
4548
4710
|
maxDate : null, // maximum date/time that can be selected, dates/times after are disabled
|
4549
|
-
ampm : true, // show am/pm in time mode
|
4550
4711
|
disableYear : false, // disable year selection mode
|
4551
4712
|
disableMonth : false, // disable month selection mode
|
4552
4713
|
disableMinute : false, // disable minute selection mode
|
@@ -4554,8 +4715,10 @@ $.fn.calendar.settings = {
|
|
4554
4715
|
startCalendar : null, // jquery object or selector for another calendar that represents the start date of a date range
|
4555
4716
|
endCalendar : null, // jquery object or selector for another calendar that represents the end date of a date range
|
4556
4717
|
multiMonth : 1, // show multiple months when in 'day' mode
|
4718
|
+
monthOffset : 0, // position current month by offset when multimonth > 1
|
4557
4719
|
minTimeGap : 5,
|
4558
|
-
showWeekNumbers :
|
4720
|
+
showWeekNumbers : false, // show Number of Week at the very first column of a dayView
|
4721
|
+
disabledHours : [], // specific hour(s) which won't be selectable and contain additional information.
|
4559
4722
|
disabledDates : [], // specific day(s) which won't be selectable and contain additional information.
|
4560
4723
|
disabledDaysOfWeek : [], // day(s) which won't be selectable(s) (0 = Sunday)
|
4561
4724
|
enabledDates : [], // specific day(s) which will be selectable, all other days will be disabled
|
@@ -4568,11 +4731,14 @@ $.fn.calendar.settings = {
|
|
4568
4731
|
position: 'bottom left',
|
4569
4732
|
lastResort: 'bottom left',
|
4570
4733
|
prefer: 'opposite',
|
4734
|
+
observeChanges: false,
|
4571
4735
|
hideOnScroll: false
|
4572
4736
|
},
|
4573
4737
|
|
4574
4738
|
text: {
|
4575
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'],
|
4576
4742
|
months: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],
|
4577
4743
|
monthsShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
|
4578
4744
|
today: 'Today',
|
@@ -4583,67 +4749,23 @@ $.fn.calendar.settings = {
|
|
4583
4749
|
},
|
4584
4750
|
|
4585
4751
|
formatter: {
|
4586
|
-
header: function (date, mode, settings) {
|
4587
|
-
return mode === 'year' ? settings.formatter.yearHeader(date, settings) :
|
4588
|
-
mode === 'month' ? settings.formatter.monthHeader(date, settings) :
|
4589
|
-
mode === 'day' ? settings.formatter.dayHeader(date, settings) :
|
4590
|
-
mode === 'hour' ? settings.formatter.hourHeader(date, settings) :
|
4591
|
-
settings.formatter.minuteHeader(date, settings);
|
4592
|
-
},
|
4593
4752
|
yearHeader: function (date, settings) {
|
4594
4753
|
var decadeYear = Math.ceil(date.getFullYear() / 10) * 10;
|
4595
4754
|
return (decadeYear - 9) + ' - ' + (decadeYear + 2);
|
4596
4755
|
},
|
4597
|
-
monthHeader:
|
4598
|
-
|
4599
|
-
|
4600
|
-
|
4601
|
-
var month = settings.text.months[date.getMonth()];
|
4602
|
-
var year = date.getFullYear();
|
4603
|
-
return month + ' ' + year;
|
4604
|
-
},
|
4605
|
-
hourHeader: function (date, settings) {
|
4606
|
-
return settings.formatter.date(date, settings);
|
4607
|
-
},
|
4608
|
-
minuteHeader: function (date, settings) {
|
4609
|
-
return settings.formatter.date(date, settings);
|
4610
|
-
},
|
4756
|
+
monthHeader: 'YYYY',
|
4757
|
+
dayHeader: 'MMMM YYYY',
|
4758
|
+
hourHeader: 'MMMM D, YYYY',
|
4759
|
+
minuteHeader: 'MMMM D, YYYY',
|
4611
4760
|
dayColumnHeader: function (day, settings) {
|
4612
4761
|
return settings.text.days[day];
|
4613
4762
|
},
|
4614
|
-
datetime:
|
4615
|
-
|
4616
|
-
|
4617
|
-
|
4618
|
-
|
4619
|
-
|
4620
|
-
var separator = settings.type === 'datetime' ? ' ' : '';
|
4621
|
-
return day + separator + time;
|
4622
|
-
},
|
4623
|
-
date: function (date, settings) {
|
4624
|
-
if (!date) {
|
4625
|
-
return '';
|
4626
|
-
}
|
4627
|
-
var day = date.getDate();
|
4628
|
-
var month = settings.text.months[date.getMonth()];
|
4629
|
-
var year = date.getFullYear();
|
4630
|
-
return settings.type === 'year' ? year :
|
4631
|
-
settings.type === 'month' ? month + ' ' + year :
|
4632
|
-
(settings.monthFirst ? month + ' ' + day : day + ' ' + month) + ', ' + year;
|
4633
|
-
},
|
4634
|
-
time: function (date, settings, forCalendar) {
|
4635
|
-
if (!date) {
|
4636
|
-
return '';
|
4637
|
-
}
|
4638
|
-
var hour = date.getHours();
|
4639
|
-
var minute = date.getMinutes();
|
4640
|
-
var ampm = '';
|
4641
|
-
if (settings.ampm) {
|
4642
|
-
ampm = ' ' + (hour < 12 ? settings.text.am : settings.text.pm);
|
4643
|
-
hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;
|
4644
|
-
}
|
4645
|
-
return hour + ':' + (minute < 10 ? '0' : '') + minute + ampm;
|
4646
|
-
},
|
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',
|
4647
4769
|
today: function (settings) {
|
4648
4770
|
return settings.type === 'date' ? settings.text.today : settings.text.now;
|
4649
4771
|
},
|
@@ -4659,7 +4781,7 @@ $.fn.calendar.settings = {
|
|
4659
4781
|
if (!text) {
|
4660
4782
|
return null;
|
4661
4783
|
}
|
4662
|
-
text = String(text).trim();
|
4784
|
+
text = String(text).trim().replace(/([.:\/\-])\s+/g,'$1').replace(/\s+([.:\/-])/g,'$1').replace(/\s+/g,' ');
|
4663
4785
|
if (text.length === 0) {
|
4664
4786
|
return null;
|
4665
4787
|
}
|
@@ -4912,7 +5034,8 @@ $.fn.calendar.settings = {
|
|
4912
5034
|
|
4913
5035
|
regExp: {
|
4914
5036
|
dateWords: /[^A-Za-z\u00C0-\u024F]+/g,
|
4915
|
-
dateNumbers: /[^\d:]+/g
|
5037
|
+
dateNumbers: /[^\d:]+/g,
|
5038
|
+
token: /d{1,4}|D{1,2}|M{1,4}|YY(?:YY)?|([Hhmsw])\1?|[SAaY]|"[^"]*"|'[^']*'/g
|
4916
5039
|
},
|
4917
5040
|
|
4918
5041
|
error: {
|
@@ -4961,7 +5084,9 @@ $.fn.calendar.settings = {
|
|
4961
5084
|
variation: 'variation',
|
4962
5085
|
position: 'position',
|
4963
5086
|
month: 'month',
|
4964
|
-
year: 'year'
|
5087
|
+
year: 'year',
|
5088
|
+
hours: 'hours',
|
5089
|
+
days: 'days'
|
4965
5090
|
},
|
4966
5091
|
|
4967
5092
|
eventClass: 'blue'
|
@@ -4970,7 +5095,7 @@ $.fn.calendar.settings = {
|
|
4970
5095
|
})(jQuery, window, document);
|
4971
5096
|
|
4972
5097
|
/*!
|
4973
|
-
* # Fomantic-UI 2.9.0-beta.
|
5098
|
+
* # Fomantic-UI 2.9.0-beta.301+42e68bc - Checkbox
|
4974
5099
|
* http://github.com/fomantic/Fomantic-UI/
|
4975
5100
|
*
|
4976
5101
|
*
|
@@ -5210,18 +5335,26 @@ $.fn.checkbox = function(parameters) {
|
|
5210
5335
|
}
|
5211
5336
|
}
|
5212
5337
|
|
5338
|
+
shortcutPressed = false;
|
5213
5339
|
if(key == keyCode.escape) {
|
5214
5340
|
module.verbose('Escape key pressed blurring field');
|
5215
5341
|
$input.blur();
|
5216
5342
|
shortcutPressed = true;
|
5217
5343
|
}
|
5218
|
-
else if(!event.ctrlKey &&
|
5219
|
-
|
5220
|
-
|
5221
|
-
|
5222
|
-
|
5223
|
-
|
5224
|
-
|
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
|
+
}
|
5225
5358
|
}
|
5226
5359
|
},
|
5227
5360
|
keyup: function(event) {
|
@@ -5294,7 +5427,6 @@ $.fn.checkbox = function(parameters) {
|
|
5294
5427
|
settings.onEnable.call(input);
|
5295
5428
|
// preserve legacy callbacks
|
5296
5429
|
settings.onEnabled.call(input);
|
5297
|
-
module.trigger.change();
|
5298
5430
|
}
|
5299
5431
|
},
|
5300
5432
|
|
@@ -5309,7 +5441,6 @@ $.fn.checkbox = function(parameters) {
|
|
5309
5441
|
settings.onDisable.call(input);
|
5310
5442
|
// preserve legacy callbacks
|
5311
5443
|
settings.onDisabled.call(input);
|
5312
|
-
module.trigger.change();
|
5313
5444
|
}
|
5314
5445
|
},
|
5315
5446
|
|
@@ -5837,7 +5968,7 @@ $.fn.checkbox.settings = {
|
|
5837
5968
|
|
5838
5969
|
selector : {
|
5839
5970
|
checkbox : '.ui.checkbox',
|
5840
|
-
label : 'label
|
5971
|
+
label : 'label',
|
5841
5972
|
input : 'input[type="checkbox"], input[type="radio"]',
|
5842
5973
|
link : 'a[href]'
|
5843
5974
|
}
|
@@ -5847,7 +5978,7 @@ $.fn.checkbox.settings = {
|
|
5847
5978
|
})( jQuery, window, document );
|
5848
5979
|
|
5849
5980
|
/*!
|
5850
|
-
* # Fomantic-UI 2.9.0-beta.
|
5981
|
+
* # Fomantic-UI 2.9.0-beta.301+42e68bc - Dimmer
|
5851
5982
|
* http://github.com/fomantic/Fomantic-UI/
|
5852
5983
|
*
|
5853
5984
|
*
|
@@ -6040,11 +6171,14 @@ $.fn.dimmer = function(parameters) {
|
|
6040
6171
|
? callback
|
6041
6172
|
: function(){}
|
6042
6173
|
;
|
6043
|
-
module.debug('Showing dimmer', $dimmer, settings);
|
6044
|
-
module.set.variation();
|
6045
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();
|
6046
6181
|
module.animate.show(callback);
|
6047
|
-
settings.onShow.call(element);
|
6048
6182
|
settings.onChange.call(element);
|
6049
6183
|
}
|
6050
6184
|
else {
|
@@ -6058,9 +6192,12 @@ $.fn.dimmer = function(parameters) {
|
|
6058
6192
|
: function(){}
|
6059
6193
|
;
|
6060
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
|
+
}
|
6061
6199
|
module.debug('Hiding dimmer', $dimmer);
|
6062
6200
|
module.animate.hide(callback);
|
6063
|
-
settings.onHide.call(element);
|
6064
6201
|
settings.onChange.call(element);
|
6065
6202
|
}
|
6066
6203
|
else {
|
@@ -6604,7 +6741,7 @@ $.fn.dimmer.settings = {
|
|
6604
6741
|
})( jQuery, window, document );
|
6605
6742
|
|
6606
6743
|
/*!
|
6607
|
-
* # Fomantic-UI 2.9.0-beta.
|
6744
|
+
* # Fomantic-UI 2.9.0-beta.301+42e68bc - Dropdown
|
6608
6745
|
* http://github.com/fomantic/Fomantic-UI/
|
6609
6746
|
*
|
6610
6747
|
*
|
@@ -6635,11 +6772,6 @@ $.fn.dropdown = function(parameters) {
|
|
6635
6772
|
|
6636
6773
|
moduleSelector = $allModules.selector || '',
|
6637
6774
|
|
6638
|
-
hasTouch = ('ontouchstart' in document.documentElement),
|
6639
|
-
clickEvent = hasTouch
|
6640
|
-
? 'touchstart'
|
6641
|
-
: 'click',
|
6642
|
-
|
6643
6775
|
time = new Date().getTime(),
|
6644
6776
|
performance = [],
|
6645
6777
|
|
@@ -6671,7 +6803,7 @@ $.fn.dropdown = function(parameters) {
|
|
6671
6803
|
moduleNamespace = 'module-' + namespace,
|
6672
6804
|
|
6673
6805
|
$module = $(this),
|
6674
|
-
$context = $(settings.context),
|
6806
|
+
$context = [window,document].indexOf(settings.context) < 0 ? $(document).find(settings.context) : $(settings.context),
|
6675
6807
|
$text = $module.find(selector.text),
|
6676
6808
|
$search = $module.find(selector.search),
|
6677
6809
|
$sizer = $module.find(selector.sizer),
|
@@ -6805,6 +6937,7 @@ $.fn.dropdown = function(parameters) {
|
|
6805
6937
|
select: function() {
|
6806
6938
|
if(module.has.input() && selectObserver) {
|
6807
6939
|
selectObserver.observe($module[0], {
|
6940
|
+
attributes: true,
|
6808
6941
|
childList : true,
|
6809
6942
|
subtree : true
|
6810
6943
|
});
|
@@ -6829,7 +6962,7 @@ $.fn.dropdown = function(parameters) {
|
|
6829
6962
|
|
6830
6963
|
create: {
|
6831
6964
|
id: function() {
|
6832
|
-
id = (Math.random().toString(16) + '000000000').
|
6965
|
+
id = (Math.random().toString(16) + '000000000').slice(2, 10);
|
6833
6966
|
elementNamespace = '.' + id;
|
6834
6967
|
module.verbose('Creating unique id for element', id);
|
6835
6968
|
},
|
@@ -7026,6 +7159,9 @@ $.fn.dropdown = function(parameters) {
|
|
7026
7159
|
module.debug('Disabling dropdown');
|
7027
7160
|
$module.addClass(className.disabled);
|
7028
7161
|
}
|
7162
|
+
if($input.is('[required]')) {
|
7163
|
+
settings.forceSelection = true;
|
7164
|
+
}
|
7029
7165
|
$input
|
7030
7166
|
.removeAttr('required')
|
7031
7167
|
.removeAttr('class')
|
@@ -7142,9 +7278,7 @@ $.fn.dropdown = function(parameters) {
|
|
7142
7278
|
}
|
7143
7279
|
if(settings.onShow.call(element) !== false) {
|
7144
7280
|
module.animate.show(function() {
|
7145
|
-
|
7146
|
-
module.bind.intent();
|
7147
|
-
}
|
7281
|
+
module.bind.intent();
|
7148
7282
|
if(module.has.search() && !preventFocus) {
|
7149
7283
|
module.focusSearch();
|
7150
7284
|
}
|
@@ -7165,14 +7299,23 @@ $.fn.dropdown = function(parameters) {
|
|
7165
7299
|
if(settings.onHide.call(element) !== false) {
|
7166
7300
|
module.animate.hide(function() {
|
7167
7301
|
module.remove.visible();
|
7168
|
-
//
|
7302
|
+
// hiding search focus
|
7169
7303
|
if ( module.is.focusedOnSearch() && preventBlur !== true ) {
|
7170
7304
|
$search.blur();
|
7171
7305
|
}
|
7172
7306
|
callback.call(element);
|
7173
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
|
+
}
|
7174
7317
|
}
|
7175
|
-
} else
|
7318
|
+
} else {
|
7176
7319
|
module.unbind.intent();
|
7177
7320
|
}
|
7178
7321
|
iconClicked = false;
|
@@ -7230,13 +7373,18 @@ $.fn.dropdown = function(parameters) {
|
|
7230
7373
|
$module
|
7231
7374
|
.on('change' + eventNamespace, selector.input, module.event.change)
|
7232
7375
|
;
|
7376
|
+
if(module.is.multiple() && module.is.searchSelection()) {
|
7377
|
+
$module
|
7378
|
+
.on('paste' + eventNamespace, selector.search, module.event.paste)
|
7379
|
+
;
|
7380
|
+
}
|
7233
7381
|
},
|
7234
7382
|
mouseEvents: function() {
|
7235
7383
|
module.verbose('Binding mouse events');
|
7236
7384
|
if(module.is.multiple()) {
|
7237
7385
|
$module
|
7238
|
-
.on(
|
7239
|
-
.on(
|
7386
|
+
.on('click' + eventNamespace, selector.label, module.event.label.click)
|
7387
|
+
.on('click' + eventNamespace, selector.remove, module.event.remove.click)
|
7240
7388
|
;
|
7241
7389
|
}
|
7242
7390
|
if( module.is.searchSelection() ) {
|
@@ -7245,31 +7393,33 @@ $.fn.dropdown = function(parameters) {
|
|
7245
7393
|
.on('mouseup' + eventNamespace, module.event.mouseup)
|
7246
7394
|
.on('mousedown' + eventNamespace, selector.menu, module.event.menu.mousedown)
|
7247
7395
|
.on('mouseup' + eventNamespace, selector.menu, module.event.menu.mouseup)
|
7248
|
-
.on(
|
7249
|
-
.on(
|
7396
|
+
.on('click' + eventNamespace, selector.icon, module.event.icon.click)
|
7397
|
+
.on('click' + eventNamespace, selector.clearIcon, module.event.clearIcon.click)
|
7250
7398
|
.on('focus' + eventNamespace, selector.search, module.event.search.focus)
|
7251
|
-
.on(
|
7399
|
+
.on('click' + eventNamespace, selector.search, module.event.search.focus)
|
7252
7400
|
.on('blur' + eventNamespace, selector.search, module.event.search.blur)
|
7253
|
-
.on(
|
7401
|
+
.on('click' + eventNamespace, selector.text, module.event.text.focus)
|
7254
7402
|
;
|
7255
7403
|
if(module.is.multiple()) {
|
7256
7404
|
$module
|
7257
|
-
.on(
|
7258
|
-
.on(
|
7405
|
+
.on('click' + eventNamespace, module.event.click)
|
7406
|
+
.on('click' + eventNamespace, module.event.search.focus)
|
7259
7407
|
;
|
7260
7408
|
}
|
7261
7409
|
}
|
7262
7410
|
else {
|
7263
7411
|
if(settings.on == 'click') {
|
7264
7412
|
$module
|
7265
|
-
.on(
|
7266
|
-
.on(
|
7413
|
+
.on('click' + eventNamespace, selector.icon, module.event.icon.click)
|
7414
|
+
.on('click' + eventNamespace, module.event.test.toggle)
|
7267
7415
|
;
|
7268
7416
|
}
|
7269
7417
|
else if(settings.on == 'hover') {
|
7270
7418
|
$module
|
7271
7419
|
.on('mouseenter' + eventNamespace, module.delay.show)
|
7272
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)
|
7273
7423
|
;
|
7274
7424
|
}
|
7275
7425
|
else {
|
@@ -7281,7 +7431,7 @@ $.fn.dropdown = function(parameters) {
|
|
7281
7431
|
.on('mousedown' + eventNamespace, module.event.mousedown)
|
7282
7432
|
.on('mouseup' + eventNamespace, module.event.mouseup)
|
7283
7433
|
.on('focus' + eventNamespace, module.event.focus)
|
7284
|
-
.on(
|
7434
|
+
.on('click' + eventNamespace, selector.clearIcon, module.event.clearIcon.click)
|
7285
7435
|
;
|
7286
7436
|
if(module.has.menuSearch() ) {
|
7287
7437
|
$module
|
@@ -7295,21 +7445,16 @@ $.fn.dropdown = function(parameters) {
|
|
7295
7445
|
}
|
7296
7446
|
}
|
7297
7447
|
$menu
|
7298
|
-
.on(
|
7448
|
+
.on('mouseenter' + eventNamespace, selector.item, module.event.item.mouseenter)
|
7449
|
+
.on('touchstart' + eventNamespace, selector.item, module.event.item.mouseenter)
|
7299
7450
|
.on('mouseleave' + eventNamespace, selector.item, module.event.item.mouseleave)
|
7300
7451
|
.on('click' + eventNamespace, selector.item, module.event.item.click)
|
7301
7452
|
;
|
7302
7453
|
},
|
7303
7454
|
intent: function() {
|
7304
7455
|
module.verbose('Binding hide intent event to document');
|
7305
|
-
if(hasTouch) {
|
7306
|
-
$document
|
7307
|
-
.on('touchstart' + elementNamespace, module.event.test.touch)
|
7308
|
-
.on('touchmove' + elementNamespace, module.event.test.touch)
|
7309
|
-
;
|
7310
|
-
}
|
7311
7456
|
$document
|
7312
|
-
.on(
|
7457
|
+
.on('click' + elementNamespace, module.event.test.hide)
|
7313
7458
|
;
|
7314
7459
|
}
|
7315
7460
|
},
|
@@ -7317,14 +7462,8 @@ $.fn.dropdown = function(parameters) {
|
|
7317
7462
|
unbind: {
|
7318
7463
|
intent: function() {
|
7319
7464
|
module.verbose('Removing hide intent event from document');
|
7320
|
-
if(hasTouch) {
|
7321
|
-
$document
|
7322
|
-
.off('touchstart' + elementNamespace)
|
7323
|
-
.off('touchmove' + elementNamespace)
|
7324
|
-
;
|
7325
|
-
}
|
7326
7465
|
$document
|
7327
|
-
.off(
|
7466
|
+
.off('click' + elementNamespace)
|
7328
7467
|
;
|
7329
7468
|
}
|
7330
7469
|
},
|
@@ -7417,20 +7556,28 @@ $.fn.dropdown = function(parameters) {
|
|
7417
7556
|
throttle : settings.throttle,
|
7418
7557
|
urlData : {
|
7419
7558
|
query: query
|
7420
|
-
}
|
7421
|
-
|
7559
|
+
}
|
7560
|
+
},
|
7561
|
+
apiCallbacks = {
|
7562
|
+
onError: function(errorMessage, $module, xhr) {
|
7422
7563
|
module.add.message(message.serverError);
|
7423
7564
|
iconClicked = false;
|
7424
7565
|
focused = false;
|
7425
7566
|
callback.apply(null, callbackParameters);
|
7567
|
+
if(typeof settings.apiSettings.onError === 'function') {
|
7568
|
+
settings.apiSettings.onError.call(this, errorMessage, $module, xhr);
|
7569
|
+
}
|
7426
7570
|
},
|
7427
|
-
onFailure: function() {
|
7571
|
+
onFailure: function(response, $module, xhr) {
|
7428
7572
|
module.add.message(message.serverError);
|
7429
7573
|
iconClicked = false;
|
7430
7574
|
focused = false;
|
7431
7575
|
callback.apply(null, callbackParameters);
|
7576
|
+
if(typeof settings.apiSettings.onFailure === 'function') {
|
7577
|
+
settings.apiSettings.onFailure.call(this, response, $module, xhr);
|
7578
|
+
}
|
7432
7579
|
},
|
7433
|
-
onSuccess : function(response) {
|
7580
|
+
onSuccess : function(response, $module, xhr) {
|
7434
7581
|
var
|
7435
7582
|
values = response[fields.remoteValues]
|
7436
7583
|
;
|
@@ -7449,19 +7596,22 @@ $.fn.dropdown = function(parameters) {
|
|
7449
7596
|
var value = module.is.multiple() ? module.get.values() : module.get.value();
|
7450
7597
|
if (value !== '') {
|
7451
7598
|
module.verbose('Value(s) present after click icon, select value(s) in items');
|
7452
|
-
module.set.selected(value, null,
|
7599
|
+
module.set.selected(value, null, true, true);
|
7453
7600
|
}
|
7454
7601
|
}
|
7455
7602
|
iconClicked = false;
|
7456
7603
|
focused = false;
|
7457
7604
|
callback.apply(null, callbackParameters);
|
7605
|
+
if(typeof settings.apiSettings.onSuccess === 'function') {
|
7606
|
+
settings.apiSettings.onSuccess.call(this, response, $module, xhr);
|
7607
|
+
}
|
7458
7608
|
}
|
7459
7609
|
}
|
7460
7610
|
;
|
7461
7611
|
if( !$module.api('get request') ) {
|
7462
7612
|
module.setup.api();
|
7463
7613
|
}
|
7464
|
-
apiSettings = $.extend(true, {}, apiSettings, settings.apiSettings);
|
7614
|
+
apiSettings = $.extend(true, {}, apiSettings, settings.apiSettings, apiCallbacks);
|
7465
7615
|
$module
|
7466
7616
|
.api('setting', apiSettings)
|
7467
7617
|
.api('query')
|
@@ -7649,7 +7799,7 @@ $.fn.dropdown = function(parameters) {
|
|
7649
7799
|
menuConfig[fields.values] = values;
|
7650
7800
|
module.setup.menu(menuConfig);
|
7651
7801
|
$.each(values, function(index, item) {
|
7652
|
-
if(item.selected
|
7802
|
+
if(item.selected === true) {
|
7653
7803
|
module.debug('Setting initial selection to', item[fields.value]);
|
7654
7804
|
module.set.selected(item[fields.value]);
|
7655
7805
|
if(!module.is.multiple()) {
|
@@ -7670,7 +7820,7 @@ $.fn.dropdown = function(parameters) {
|
|
7670
7820
|
settings.preserveHTML
|
7671
7821
|
)
|
7672
7822
|
;
|
7673
|
-
$input.append('<option value="' + value + '">' + name + '</option>');
|
7823
|
+
$input.append('<option value="' + value + '"' + (item.selected === true ? ' selected' : '') + '>' + name + '</option>');
|
7674
7824
|
});
|
7675
7825
|
module.observe.select();
|
7676
7826
|
}
|
@@ -7678,6 +7828,15 @@ $.fn.dropdown = function(parameters) {
|
|
7678
7828
|
},
|
7679
7829
|
|
7680
7830
|
event: {
|
7831
|
+
paste: function(event) {
|
7832
|
+
var pasteValue = (event.originalEvent.clipboardData || window.clipboardData).getData('text'),
|
7833
|
+
tokens = pasteValue.split(settings.delimiter)
|
7834
|
+
;
|
7835
|
+
tokens.forEach(function(value){
|
7836
|
+
module.set.selected(module.escape.htmlEntities(value.trim()), null, true, true);
|
7837
|
+
});
|
7838
|
+
event.preventDefault();
|
7839
|
+
},
|
7681
7840
|
change: function() {
|
7682
7841
|
if(!internalChange) {
|
7683
7842
|
module.debug('Input changed, updating selection');
|
@@ -7736,7 +7895,7 @@ $.fn.dropdown = function(parameters) {
|
|
7736
7895
|
if(module.is.multiple()) {
|
7737
7896
|
module.remove.activeLabel();
|
7738
7897
|
}
|
7739
|
-
if(!focused && !module.is.active() && (settings.showOnFocus || (event.type !== 'focus' && event.type !== 'focusin'))) {
|
7898
|
+
if(!focused && !module.is.active() && (settings.showOnFocus || (event.type !== 'focus' && event.type !== 'focusin')) && event.type !== 'touchstart') {
|
7740
7899
|
focused = true;
|
7741
7900
|
module.search();
|
7742
7901
|
}
|
@@ -7854,23 +8013,12 @@ $.fn.dropdown = function(parameters) {
|
|
7854
8013
|
if (!module.is.multiple() || (module.is.multiple() && !module.is.active())) {
|
7855
8014
|
focused = true;
|
7856
8015
|
}
|
7857
|
-
if( module.determine.eventOnElement(event, toggleBehavior) ) {
|
8016
|
+
if( module.determine.eventOnElement(event, toggleBehavior) && event.type !== 'touchstart') {
|
8017
|
+
// do not preventDefault of touchstart; so emulated mouseenter is triggered on first touch and not later
|
8018
|
+
// (when selecting an item). The double-showing of the dropdown through both events does not hurt.
|
7858
8019
|
event.preventDefault();
|
7859
8020
|
}
|
7860
8021
|
},
|
7861
|
-
touch: function(event) {
|
7862
|
-
module.determine.eventOnElement(event, function() {
|
7863
|
-
if(event.type == 'touchstart') {
|
7864
|
-
module.timer = setTimeout(function() {
|
7865
|
-
module.hide();
|
7866
|
-
}, settings.delay.touch);
|
7867
|
-
}
|
7868
|
-
else if(event.type == 'touchmove') {
|
7869
|
-
clearTimeout(module.timer);
|
7870
|
-
}
|
7871
|
-
});
|
7872
|
-
event.stopPropagation();
|
7873
|
-
},
|
7874
8022
|
hide: function(event) {
|
7875
8023
|
if(module.determine.eventInModule(event, module.hide)){
|
7876
8024
|
if(element.id && $(event.target).attr('for') === element.id){
|
@@ -7890,8 +8038,8 @@ $.fn.dropdown = function(parameters) {
|
|
7890
8038
|
},
|
7891
8039
|
select: {
|
7892
8040
|
mutation: function(mutations) {
|
7893
|
-
module.debug('<select> modified, recreating menu');
|
7894
8041
|
if(module.is.selectMutation(mutations)) {
|
8042
|
+
module.debug('<select> modified, recreating menu');
|
7895
8043
|
module.disconnect.selectObserver();
|
7896
8044
|
module.refresh();
|
7897
8045
|
module.setup.select();
|
@@ -7954,13 +8102,15 @@ $.fn.dropdown = function(parameters) {
|
|
7954
8102
|
},
|
7955
8103
|
mouseleave: function(event) {
|
7956
8104
|
var
|
7957
|
-
$subMenu = $(this).
|
8105
|
+
$subMenu = $(this).find(selector.menu)
|
7958
8106
|
;
|
7959
8107
|
if($subMenu.length > 0) {
|
7960
8108
|
clearTimeout(module.itemTimer);
|
7961
8109
|
module.itemTimer = setTimeout(function() {
|
7962
8110
|
module.verbose('Hiding sub-menu', $subMenu);
|
7963
|
-
|
8111
|
+
$subMenu.each(function() {
|
8112
|
+
module.animate.hide(false, $(this));
|
8113
|
+
});
|
7964
8114
|
}, settings.delay.hide);
|
7965
8115
|
}
|
7966
8116
|
},
|
@@ -7986,7 +8136,7 @@ $.fn.dropdown = function(parameters) {
|
|
7986
8136
|
module.remove.userAddition();
|
7987
8137
|
}
|
7988
8138
|
module.remove.searchTerm();
|
7989
|
-
if(!module.is.focusedOnSearch() &&
|
8139
|
+
if(!module.is.focusedOnSearch() && skipRefocus !== true) {
|
7990
8140
|
module.focusSearch(true);
|
7991
8141
|
}
|
7992
8142
|
}
|
@@ -8118,7 +8268,7 @@ $.fn.dropdown = function(parameters) {
|
|
8118
8268
|
keydown: function(event) {
|
8119
8269
|
var
|
8120
8270
|
pressedKey = event.which,
|
8121
|
-
isShortcutKey = module.is.inObject(pressedKey, keys)
|
8271
|
+
isShortcutKey = module.is.inObject(pressedKey, keys) || event.key === settings.delimiter
|
8122
8272
|
;
|
8123
8273
|
if(isShortcutKey) {
|
8124
8274
|
var
|
@@ -8136,7 +8286,7 @@ $.fn.dropdown = function(parameters) {
|
|
8136
8286
|
hasSubMenu = ($subMenu.length> 0),
|
8137
8287
|
hasSelectedItem = ($selectedItem.length > 0),
|
8138
8288
|
selectedIsSelectable = ($selectedItem.not(selector.unselectable).length > 0),
|
8139
|
-
delimiterPressed = (
|
8289
|
+
delimiterPressed = (event.key === settings.delimiter && module.is.multiple()),
|
8140
8290
|
isAdditionWithoutMenu = (settings.allowAdditions && settings.hideAdditions && (pressedKey == keys.enter || delimiterPressed) && selectedIsSelectable),
|
8141
8291
|
$nextItem,
|
8142
8292
|
isSubMenuItem,
|
@@ -8234,7 +8384,7 @@ $.fn.dropdown = function(parameters) {
|
|
8234
8384
|
.addClass(className.selected)
|
8235
8385
|
;
|
8236
8386
|
module.set.scrollPosition($nextItem);
|
8237
|
-
if(settings.selectOnKeydown && module.is.single()) {
|
8387
|
+
if(settings.selectOnKeydown && module.is.single() && !$nextItem.hasClass(className.actionable)) {
|
8238
8388
|
module.set.selectedItem($nextItem);
|
8239
8389
|
}
|
8240
8390
|
}
|
@@ -8261,7 +8411,7 @@ $.fn.dropdown = function(parameters) {
|
|
8261
8411
|
.addClass(className.selected)
|
8262
8412
|
;
|
8263
8413
|
module.set.scrollPosition($nextItem);
|
8264
|
-
if(settings.selectOnKeydown && module.is.single()) {
|
8414
|
+
if(settings.selectOnKeydown && module.is.single() && !$nextItem.hasClass(className.actionable)) {
|
8265
8415
|
module.set.selectedItem($nextItem);
|
8266
8416
|
}
|
8267
8417
|
}
|
@@ -8392,7 +8542,7 @@ $.fn.dropdown = function(parameters) {
|
|
8392
8542
|
;
|
8393
8543
|
if( module.can.activate( $(element) ) ) {
|
8394
8544
|
module.set.selected(value, $(element));
|
8395
|
-
if(!module.is.multiple()) {
|
8545
|
+
if(!module.is.multiple() && !(!settings.collapseOnActionable && $(element).hasClass(className.actionable))) {
|
8396
8546
|
module.hideAndClear();
|
8397
8547
|
}
|
8398
8548
|
}
|
@@ -8405,7 +8555,7 @@ $.fn.dropdown = function(parameters) {
|
|
8405
8555
|
;
|
8406
8556
|
if( module.can.activate( $(element) ) ) {
|
8407
8557
|
module.set.value(value, text, $(element));
|
8408
|
-
if(!module.is.multiple()) {
|
8558
|
+
if(!module.is.multiple() && !(!settings.collapseOnActionable && $(element).hasClass(className.actionable))) {
|
8409
8559
|
module.hideAndClear();
|
8410
8560
|
}
|
8411
8561
|
}
|
@@ -8456,7 +8606,7 @@ $.fn.dropdown = function(parameters) {
|
|
8456
8606
|
;
|
8457
8607
|
$sizer.text(value);
|
8458
8608
|
// prevent rounding issues
|
8459
|
-
return Math.ceil( $sizer.width() + 1);
|
8609
|
+
return Math.ceil( $sizer.width() + (module.is.edge() ? 3 : 1));
|
8460
8610
|
},
|
8461
8611
|
selectionCount: function() {
|
8462
8612
|
var
|
@@ -8925,7 +9075,7 @@ $.fn.dropdown = function(parameters) {
|
|
8925
9075
|
module.error(error.noStorage);
|
8926
9076
|
return;
|
8927
9077
|
}
|
8928
|
-
name = sessionStorage.getItem(value);
|
9078
|
+
name = sessionStorage.getItem(value + elementNamespace);
|
8929
9079
|
return (name !== undefined)
|
8930
9080
|
? name
|
8931
9081
|
: false
|
@@ -8969,7 +9119,7 @@ $.fn.dropdown = function(parameters) {
|
|
8969
9119
|
return;
|
8970
9120
|
}
|
8971
9121
|
module.verbose('Saving remote data to session storage', value, name);
|
8972
|
-
sessionStorage.setItem(value, name);
|
9122
|
+
sessionStorage.setItem(value + elementNamespace, name);
|
8973
9123
|
}
|
8974
9124
|
},
|
8975
9125
|
|
@@ -9029,7 +9179,7 @@ $.fn.dropdown = function(parameters) {
|
|
9029
9179
|
$nextSelectedItem
|
9030
9180
|
.addClass(className.selected)
|
9031
9181
|
;
|
9032
|
-
if(settings.selectOnKeydown && module.is.single()) {
|
9182
|
+
if(settings.selectOnKeydown && module.is.single() && !$nextItem.hasClass(className.actionable)) {
|
9033
9183
|
module.set.selectedItem($nextSelectedItem);
|
9034
9184
|
}
|
9035
9185
|
$menu
|
@@ -9115,7 +9265,7 @@ $.fn.dropdown = function(parameters) {
|
|
9115
9265
|
var
|
9116
9266
|
length = module.get.query().length
|
9117
9267
|
;
|
9118
|
-
$search.val( text.
|
9268
|
+
$search.val( text.slice(0, length));
|
9119
9269
|
},
|
9120
9270
|
scrollPosition: function($item, forceScroll) {
|
9121
9271
|
var
|
@@ -9232,13 +9382,13 @@ $.fn.dropdown = function(parameters) {
|
|
9232
9382
|
module.set.scrollPosition($nextValue);
|
9233
9383
|
$selectedItem.removeClass(className.selected);
|
9234
9384
|
$nextValue.addClass(className.selected);
|
9235
|
-
if(settings.selectOnKeydown && module.is.single()) {
|
9385
|
+
if(settings.selectOnKeydown && module.is.single() && !$nextItem.hasClass(className.actionable)) {
|
9236
9386
|
module.set.selectedItem($nextValue);
|
9237
9387
|
}
|
9238
9388
|
}
|
9239
9389
|
},
|
9240
9390
|
direction: function($menu) {
|
9241
|
-
if(settings.direction
|
9391
|
+
if(settings.direction === 'auto') {
|
9242
9392
|
// reset position, remove upward if it's base menu
|
9243
9393
|
if (!$menu) {
|
9244
9394
|
module.remove.upward();
|
@@ -9257,7 +9407,7 @@ $.fn.dropdown = function(parameters) {
|
|
9257
9407
|
module.set.leftward($menu);
|
9258
9408
|
}
|
9259
9409
|
}
|
9260
|
-
else if(settings.direction
|
9410
|
+
else if(settings.direction === 'upward') {
|
9261
9411
|
module.set.upward($menu);
|
9262
9412
|
}
|
9263
9413
|
},
|
@@ -9270,6 +9420,11 @@ $.fn.dropdown = function(parameters) {
|
|
9270
9420
|
$element.addClass(className.leftward);
|
9271
9421
|
},
|
9272
9422
|
value: function(value, text, $selected, preventChangeTrigger) {
|
9423
|
+
if(typeof text === 'boolean') {
|
9424
|
+
preventChangeTrigger = text;
|
9425
|
+
$selected = undefined;
|
9426
|
+
text = undefined;
|
9427
|
+
}
|
9273
9428
|
if(value !== undefined && value !== '' && !(Array.isArray(value) && value.length === 0)) {
|
9274
9429
|
$input.removeClass(className.noselection);
|
9275
9430
|
} else {
|
@@ -9333,12 +9488,21 @@ $.fn.dropdown = function(parameters) {
|
|
9333
9488
|
visible: function() {
|
9334
9489
|
$module.addClass(className.visible);
|
9335
9490
|
},
|
9336
|
-
exactly: function(value, $selectedItem) {
|
9491
|
+
exactly: function(value, $selectedItem, preventChangeTrigger) {
|
9492
|
+
if(typeof $selectedItem === 'boolean') {
|
9493
|
+
preventChangeTrigger = $selectedItem;
|
9494
|
+
$selectedItem = undefined;
|
9495
|
+
}
|
9337
9496
|
module.debug('Setting selected to exact values');
|
9338
9497
|
module.clear();
|
9339
|
-
module.set.selected(value, $selectedItem);
|
9498
|
+
module.set.selected(value, $selectedItem, preventChangeTrigger);
|
9340
9499
|
},
|
9341
9500
|
selected: function(value, $selectedItem, preventChangeTrigger, keepSearchTerm) {
|
9501
|
+
if(typeof $selectedItem === 'boolean') {
|
9502
|
+
keepSearchTerm = preventChangeTrigger;
|
9503
|
+
preventChangeTrigger = $selectedItem;
|
9504
|
+
$selectedItem = undefined;
|
9505
|
+
}
|
9342
9506
|
var
|
9343
9507
|
isMultiple = module.is.multiple()
|
9344
9508
|
;
|
@@ -9370,23 +9534,30 @@ $.fn.dropdown = function(parameters) {
|
|
9370
9534
|
|
9371
9535
|
isFiltered = $selected.hasClass(className.filtered),
|
9372
9536
|
isActive = $selected.hasClass(className.active),
|
9537
|
+
isActionable = $selected.hasClass(className.actionable),
|
9373
9538
|
isUserValue = $selected.hasClass(className.addition),
|
9374
|
-
shouldAnimate = (isMultiple && $selectedItem.length
|
9539
|
+
shouldAnimate = (isMultiple && $selectedItem && $selectedItem.length === 1)
|
9375
9540
|
;
|
9376
|
-
if(
|
9541
|
+
if(isActionable){
|
9542
|
+
if((!isMultiple || (!isActive || isUserValue)) && settings.apiSettings && settings.saveRemoteData) {
|
9543
|
+
module.save.remoteData(selectedText, selectedValue);
|
9544
|
+
}
|
9545
|
+
settings.onActionable.call(element, selectedValue, selectedText, $selected);
|
9546
|
+
}
|
9547
|
+
else if(isMultiple) {
|
9377
9548
|
if(!isActive || isUserValue) {
|
9378
9549
|
if(settings.apiSettings && settings.saveRemoteData) {
|
9379
9550
|
module.save.remoteData(selectedText, selectedValue);
|
9380
9551
|
}
|
9381
9552
|
if(settings.useLabels) {
|
9553
|
+
module.add.value(selectedValue, selectedText, $selected, preventChangeTrigger);
|
9382
9554
|
module.add.label(selectedValue, selectedText, shouldAnimate);
|
9383
|
-
module.add.value(selectedValue, selectedText, $selected);
|
9384
9555
|
module.set.activeItem($selected);
|
9385
9556
|
module.filterActive();
|
9386
9557
|
module.select.nextAvailable($selectedItem);
|
9387
9558
|
}
|
9388
9559
|
else {
|
9389
|
-
module.add.value(selectedValue, selectedText, $selected);
|
9560
|
+
module.add.value(selectedValue, selectedText, $selected, preventChangeTrigger);
|
9390
9561
|
module.set.text(module.add.variables(message.count));
|
9391
9562
|
module.set.activeItem($selected);
|
9392
9563
|
}
|
@@ -9400,7 +9571,7 @@ $.fn.dropdown = function(parameters) {
|
|
9400
9571
|
if(settings.apiSettings && settings.saveRemoteData) {
|
9401
9572
|
module.save.remoteData(selectedText, selectedValue);
|
9402
9573
|
}
|
9403
|
-
if (!keepSearchTerm) {
|
9574
|
+
if (!keepSearchTerm && !$selected.hasClass(className.actionable)) {
|
9404
9575
|
module.set.text(selectedText);
|
9405
9576
|
}
|
9406
9577
|
module.set.value(selectedValue, selectedText, $selected, preventChangeTrigger);
|
@@ -9499,7 +9670,7 @@ $.fn.dropdown = function(parameters) {
|
|
9499
9670
|
$('<option/>')
|
9500
9671
|
.prop('value', escapedValue)
|
9501
9672
|
.addClass(className.addition)
|
9502
|
-
.
|
9673
|
+
.text(value)
|
9503
9674
|
.appendTo($input)
|
9504
9675
|
;
|
9505
9676
|
module.verbose('Adding user addition as an <option>', value);
|
@@ -9575,7 +9746,12 @@ $.fn.dropdown = function(parameters) {
|
|
9575
9746
|
}
|
9576
9747
|
return message;
|
9577
9748
|
},
|
9578
|
-
value: function(addedValue, addedText, $selectedItem) {
|
9749
|
+
value: function(addedValue, addedText, $selectedItem, preventChangeTrigger) {
|
9750
|
+
if(typeof addedText === 'boolean') {
|
9751
|
+
preventChangeTrigger = addedText;
|
9752
|
+
$selectedItem = undefined;
|
9753
|
+
addedText = undefined;
|
9754
|
+
}
|
9579
9755
|
var
|
9580
9756
|
currentValue = module.get.values(true),
|
9581
9757
|
newValue
|
@@ -9590,7 +9766,7 @@ $.fn.dropdown = function(parameters) {
|
|
9590
9766
|
}
|
9591
9767
|
// extend current array
|
9592
9768
|
if(Array.isArray(currentValue)) {
|
9593
|
-
newValue = currentValue.concat([addedValue]);
|
9769
|
+
newValue = $selectedItem && $selectedItem.hasClass(className.actionable) ? currentValue : currentValue.concat([addedValue]);
|
9594
9770
|
newValue = module.get.uniqueArray(newValue);
|
9595
9771
|
}
|
9596
9772
|
else {
|
@@ -9614,7 +9790,7 @@ $.fn.dropdown = function(parameters) {
|
|
9614
9790
|
else {
|
9615
9791
|
settings.onAdd.call(element, addedValue, addedText, $selectedItem);
|
9616
9792
|
}
|
9617
|
-
module.set.value(newValue, addedText, $selectedItem);
|
9793
|
+
module.set.value(newValue, addedText, $selectedItem, preventChangeTrigger);
|
9618
9794
|
module.check.maxSelections();
|
9619
9795
|
},
|
9620
9796
|
},
|
@@ -9674,18 +9850,10 @@ $.fn.dropdown = function(parameters) {
|
|
9674
9850
|
return;
|
9675
9851
|
}
|
9676
9852
|
// temporarily disconnect observer
|
9677
|
-
|
9678
|
-
selectObserver.disconnect();
|
9679
|
-
module.verbose('Temporarily disconnecting mutation observer');
|
9680
|
-
}
|
9853
|
+
module.disconnect.selectObserver();
|
9681
9854
|
$option.remove();
|
9682
9855
|
module.verbose('Removing user addition as an <option>', escapedValue);
|
9683
|
-
|
9684
|
-
selectObserver.observe($input[0], {
|
9685
|
-
childList : true,
|
9686
|
-
subtree : true
|
9687
|
-
});
|
9688
|
-
}
|
9856
|
+
module.observe.select();
|
9689
9857
|
},
|
9690
9858
|
message: function() {
|
9691
9859
|
$menu.children(selector.message).remove();
|
@@ -9984,8 +10152,11 @@ $.fn.dropdown = function(parameters) {
|
|
9984
10152
|
bubbledIconClick: function(event) {
|
9985
10153
|
return $(event.target).closest($icon).length > 0;
|
9986
10154
|
},
|
10155
|
+
edge: function() {
|
10156
|
+
return !!window.chrome && !!window.StyleMedia;
|
10157
|
+
},
|
9987
10158
|
chrome: function() {
|
9988
|
-
return !!window.chrome &&
|
10159
|
+
return !!window.chrome && !window.StyleMedia;
|
9989
10160
|
},
|
9990
10161
|
alreadySetup: function() {
|
9991
10162
|
return ($module.is('select') && $module.parent(selector.dropdown).data(moduleNamespace) !== undefined && $module.prev().length === 0);
|
@@ -10050,7 +10221,7 @@ $.fn.dropdown = function(parameters) {
|
|
10050
10221
|
selectChanged = false
|
10051
10222
|
;
|
10052
10223
|
$.each(mutations, function(index, mutation) {
|
10053
|
-
if($(mutation.target).is('select') || $(mutation.addedNodes).is('select')) {
|
10224
|
+
if($(mutation.target).is('select, option, optgroup') || $(mutation.addedNodes).is('select')) {
|
10054
10225
|
selectChanged = true;
|
10055
10226
|
return false;
|
10056
10227
|
}
|
@@ -10192,9 +10363,6 @@ $.fn.dropdown = function(parameters) {
|
|
10192
10363
|
$currentMenu.removeClass(className.loading);
|
10193
10364
|
return canOpenRightward;
|
10194
10365
|
},
|
10195
|
-
click: function() {
|
10196
|
-
return (hasTouch || settings.on == 'click');
|
10197
|
-
},
|
10198
10366
|
extendSelect: function() {
|
10199
10367
|
return settings.allowAdditions || settings.apiSettings;
|
10200
10368
|
},
|
@@ -10264,9 +10432,7 @@ $.fn.dropdown = function(parameters) {
|
|
10264
10432
|
start = ($subMenu)
|
10265
10433
|
? function() {}
|
10266
10434
|
: function() {
|
10267
|
-
|
10268
|
-
module.unbind.intent();
|
10269
|
-
}
|
10435
|
+
module.unbind.intent();
|
10270
10436
|
module.remove.active();
|
10271
10437
|
},
|
10272
10438
|
transition = settings.transition.hideMethod || module.get.transition($subMenu)
|
@@ -10595,7 +10761,7 @@ $.fn.dropdown.settings = {
|
|
10595
10761
|
keepOnScreen : true, // Whether dropdown should check whether it is on screen before showing
|
10596
10762
|
|
10597
10763
|
match : 'both', // what to match against with search selection (both, text, or label)
|
10598
|
-
fullTextSearch :
|
10764
|
+
fullTextSearch : 'exact', // search anywhere in value (set to 'exact' to require exact matches)
|
10599
10765
|
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...)
|
10600
10766
|
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)
|
10601
10767
|
|
@@ -10603,7 +10769,7 @@ $.fn.dropdown.settings = {
|
|
10603
10769
|
preserveHTML : true, // preserve html when selecting value
|
10604
10770
|
sortSelect : false, // sort selection on init
|
10605
10771
|
|
10606
|
-
forceSelection :
|
10772
|
+
forceSelection : false, // force a choice on blur with search selection
|
10607
10773
|
|
10608
10774
|
allowAdditions : false, // whether multiple select should allow user added values
|
10609
10775
|
ignoreCase : false, // whether to consider case sensitivity when creating labels
|
@@ -10614,7 +10780,7 @@ $.fn.dropdown.settings = {
|
|
10614
10780
|
useLabels : true, // whether multiple select should filter currently active selections from choices
|
10615
10781
|
delimiter : ',', // when multiselect uses normal <input> the values will be delimited with this character
|
10616
10782
|
|
10617
|
-
showOnFocus :
|
10783
|
+
showOnFocus : false, // show menu on focus
|
10618
10784
|
allowReselection : false, // whether current value should trigger callbacks when reselected
|
10619
10785
|
allowTab : true, // add tabindex to element
|
10620
10786
|
allowCategorySelection : false, // allow elements with sub-menus to be selected
|
@@ -10629,6 +10795,8 @@ $.fn.dropdown.settings = {
|
|
10629
10795
|
|
10630
10796
|
headerDivider : true, // whether option headers should have an additional divider line underneath when converted from <select> <optgroup>
|
10631
10797
|
|
10798
|
+
collapseOnActionable : true, // whether the dropdown should collapse upon selection of an actionable item
|
10799
|
+
|
10632
10800
|
// label settings on multi-select
|
10633
10801
|
label: {
|
10634
10802
|
transition : 'scale',
|
@@ -10641,13 +10809,13 @@ $.fn.dropdown.settings = {
|
|
10641
10809
|
hide : 300,
|
10642
10810
|
show : 200,
|
10643
10811
|
search : 20,
|
10644
|
-
touch : 50
|
10645
10812
|
},
|
10646
10813
|
|
10647
10814
|
/* Callbacks */
|
10648
10815
|
onChange : function(value, text, $selected){},
|
10649
10816
|
onAdd : function(value, text, $selected){},
|
10650
10817
|
onRemove : function(value, text, $selected){},
|
10818
|
+
onActionable : function(value, text, $selected){},
|
10651
10819
|
onSearch : function(searchTerm){},
|
10652
10820
|
|
10653
10821
|
onLabelSelect : function($selectedLabels){},
|
@@ -10710,12 +10878,12 @@ $.fn.dropdown.settings = {
|
|
10710
10878
|
icon : 'icon', // optional icon name
|
10711
10879
|
iconClass : 'iconClass', // optional individual class for icon (for example to use flag instead)
|
10712
10880
|
class : 'class', // optional individual class for item/header
|
10713
|
-
divider : 'divider' // optional divider append for group headers
|
10881
|
+
divider : 'divider', // optional divider append for group headers
|
10882
|
+
actionable : 'actionable' // optional actionable item
|
10714
10883
|
},
|
10715
10884
|
|
10716
10885
|
keys : {
|
10717
10886
|
backspace : 8,
|
10718
|
-
delimiter : 188, // comma
|
10719
10887
|
deleteKey : 46,
|
10720
10888
|
enter : 13,
|
10721
10889
|
escape : 27,
|
@@ -10782,7 +10950,8 @@ $.fn.dropdown.settings = {
|
|
10782
10950
|
header : 'header',
|
10783
10951
|
divider : 'divider',
|
10784
10952
|
groupIcon : '',
|
10785
|
-
unfilterable : 'unfilterable'
|
10953
|
+
unfilterable : 'unfilterable',
|
10954
|
+
actionable : 'actionable'
|
10786
10955
|
}
|
10787
10956
|
|
10788
10957
|
};
|
@@ -10857,6 +11026,9 @@ $.fn.dropdown.settings.templates = {
|
|
10857
11026
|
maybeText = (option[fields.text])
|
10858
11027
|
? ' data-text="' + deQuote(option[fields.text],true) + '"'
|
10859
11028
|
: '',
|
11029
|
+
maybeActionable = (option[fields.actionable])
|
11030
|
+
? className.actionable+' '
|
11031
|
+
: '',
|
10860
11032
|
maybeDisabled = (option[fields.disabled])
|
10861
11033
|
? className.disabled+' '
|
10862
11034
|
: '',
|
@@ -10865,7 +11037,7 @@ $.fn.dropdown.settings.templates = {
|
|
10865
11037
|
: '',
|
10866
11038
|
hasDescription = (escape(option[fields.description] || '', preserveHTML) != '')
|
10867
11039
|
;
|
10868
|
-
html += '<div class="'+ maybeDisabled + maybeDescriptionVertical + (option[fields.class] ? deQuote(option[fields.class]) : className.item)+'" data-value="' + deQuote(option[fields.value],true) + '"' + maybeText + '>';
|
11040
|
+
html += '<div class="'+ maybeActionable + maybeDisabled + maybeDescriptionVertical + (option[fields.class] ? deQuote(option[fields.class]) : className.item)+'" data-value="' + deQuote(option[fields.value],true) + '"' + maybeText + '>';
|
10869
11041
|
if (isMenu) {
|
10870
11042
|
html += '<i class="'+ (itemType.indexOf('left') !== -1 ? 'left' : '') + ' dropdown icon"></i>';
|
10871
11043
|
}
|
@@ -10935,7 +11107,7 @@ $.fn.dropdown.settings.templates = {
|
|
10935
11107
|
})( jQuery, window, document );
|
10936
11108
|
|
10937
11109
|
/*!
|
10938
|
-
* # Fomantic-UI 2.9.0-beta.
|
11110
|
+
* # Fomantic-UI 2.9.0-beta.301+42e68bc - Embed
|
10939
11111
|
* http://github.com/fomantic/Fomantic-UI/
|
10940
11112
|
*
|
10941
11113
|
*
|
@@ -11645,7 +11817,7 @@ $.fn.embed.settings = {
|
|
11645
11817
|
})( jQuery, window, document );
|
11646
11818
|
|
11647
11819
|
/*!
|
11648
|
-
* # Fomantic-UI 2.9.0-beta.
|
11820
|
+
* # Fomantic-UI 2.9.0-beta.301+42e68bc - Modal
|
11649
11821
|
* http://github.com/fomantic/Fomantic-UI/
|
11650
11822
|
*
|
11651
11823
|
*
|
@@ -11711,8 +11883,9 @@ $.fn.modal = function(parameters) {
|
|
11711
11883
|
moduleNamespace = 'module-' + namespace,
|
11712
11884
|
|
11713
11885
|
$module = $(this),
|
11714
|
-
$context = $(settings.context),
|
11715
|
-
$
|
11886
|
+
$context = [window,document].indexOf(settings.context) < 0 ? $(document).find(settings.context) : $(settings.context),
|
11887
|
+
$closeIcon = $module.find(selector.closeIcon),
|
11888
|
+
$inputs,
|
11716
11889
|
|
11717
11890
|
$allModals,
|
11718
11891
|
$otherModals,
|
@@ -11738,6 +11911,7 @@ $.fn.modal = function(parameters) {
|
|
11738
11911
|
module = {
|
11739
11912
|
|
11740
11913
|
initialize: function() {
|
11914
|
+
module.create.id();
|
11741
11915
|
if(!$module.hasClass('modal')) {
|
11742
11916
|
module.create.modal();
|
11743
11917
|
if(!$.isFunction(settings.onHidden)) {
|
@@ -11762,15 +11936,17 @@ $.fn.modal = function(parameters) {
|
|
11762
11936
|
$actions.empty();
|
11763
11937
|
}
|
11764
11938
|
settings.actions.forEach(function (el) {
|
11765
|
-
var icon = el[fields.icon] ? '<i class="' + module.helpers.deQuote(el[fields.icon]) + ' icon"></i>' : '',
|
11939
|
+
var icon = el[fields.icon] ? '<i '+(el[fields.text] ? 'aria-hidden="true"' : '')+' class="' + module.helpers.deQuote(el[fields.icon]) + ' icon"></i>' : '',
|
11766
11940
|
text = module.helpers.escape(el[fields.text] || '', settings.preserveHTML),
|
11767
11941
|
cls = module.helpers.deQuote(el[fields.class] || ''),
|
11768
11942
|
click = el[fields.click] && $.isFunction(el[fields.click]) ? el[fields.click] : function () {};
|
11769
11943
|
$actions.append($('<button/>', {
|
11770
11944
|
html: icon + text,
|
11945
|
+
'aria-label': (el[fields.text] || el[fields.icon] || '').replace(/<[^>]+(>|$)/g,''),
|
11771
11946
|
class: className.button + ' ' + cls,
|
11772
11947
|
click: function () {
|
11773
|
-
|
11948
|
+
var button = $(this);
|
11949
|
+
if (button.is(selector.approve) || button.is(selector.deny) || click.call(element, $module) === false) {
|
11774
11950
|
return;
|
11775
11951
|
}
|
11776
11952
|
module.hide();
|
@@ -11781,7 +11957,6 @@ $.fn.modal = function(parameters) {
|
|
11781
11957
|
module.cache = {};
|
11782
11958
|
module.verbose('Initializing dimmer', $context);
|
11783
11959
|
|
11784
|
-
module.create.id();
|
11785
11960
|
module.create.dimmer();
|
11786
11961
|
|
11787
11962
|
if ( settings.allowMultiple ) {
|
@@ -11791,11 +11966,9 @@ $.fn.modal = function(parameters) {
|
|
11791
11966
|
$module.addClass('top aligned');
|
11792
11967
|
}
|
11793
11968
|
module.refreshModals();
|
11794
|
-
|
11969
|
+
module.refreshInputs();
|
11795
11970
|
module.bind.events();
|
11796
|
-
|
11797
|
-
module.observeChanges();
|
11798
|
-
}
|
11971
|
+
module.observeChanges();
|
11799
11972
|
module.instantiate();
|
11800
11973
|
if(settings.autoShow){
|
11801
11974
|
module.show();
|
@@ -11812,16 +11985,20 @@ $.fn.modal = function(parameters) {
|
|
11812
11985
|
|
11813
11986
|
create: {
|
11814
11987
|
modal: function() {
|
11815
|
-
$module = $('<div/>', {class: className.modal});
|
11988
|
+
$module = $('<div/>', {class: className.modal, role: 'dialog', 'aria-modal': true});
|
11816
11989
|
if (settings.closeIcon) {
|
11817
|
-
$
|
11818
|
-
$module.append($
|
11990
|
+
$closeIcon = $('<i/>', {class: className.close, role: 'button', tabindex: 0, 'aria-label': settings.text.close})
|
11991
|
+
$module.append($closeIcon);
|
11819
11992
|
}
|
11820
11993
|
if (settings.title !== '') {
|
11821
|
-
|
11994
|
+
var titleId = '_' + module.get.id() + 'title';
|
11995
|
+
$module.attr('aria-labelledby', titleId);
|
11996
|
+
$('<div/>', {class: className.title, id: titleId}).appendTo($module);
|
11822
11997
|
}
|
11823
11998
|
if (settings.content !== '') {
|
11824
|
-
|
11999
|
+
var descId = '_' + module.get.id() + 'desc';
|
12000
|
+
$module.attr('aria-describedby', descId);
|
12001
|
+
$('<div/>', {class: className.content, id: descId}).appendTo($module);
|
11825
12002
|
}
|
11826
12003
|
if (module.has.configActions()) {
|
11827
12004
|
$('<div/>', {class: className.actions}).appendTo($module);
|
@@ -11852,13 +12029,13 @@ $.fn.modal = function(parameters) {
|
|
11852
12029
|
$dimmer = $dimmable.dimmer('get dimmer');
|
11853
12030
|
},
|
11854
12031
|
id: function() {
|
11855
|
-
id = (Math.random().toString(16) + '000000000').
|
12032
|
+
id = (Math.random().toString(16) + '000000000').slice(2, 10);
|
11856
12033
|
elementEventNamespace = '.' + id;
|
11857
12034
|
module.verbose('Creating unique id for element', id);
|
11858
12035
|
},
|
11859
12036
|
innerDimmer: function() {
|
11860
|
-
if ( $module.find(selector.dimmer).length
|
11861
|
-
$
|
12037
|
+
if ( $module.find(selector.dimmer).length === 0 ) {
|
12038
|
+
$('<div/>', {class: className.innerDimmer}).prependTo($module);
|
11862
12039
|
}
|
11863
12040
|
}
|
11864
12041
|
},
|
@@ -11874,15 +12051,21 @@ $.fn.modal = function(parameters) {
|
|
11874
12051
|
;
|
11875
12052
|
$window.off(elementEventNamespace);
|
11876
12053
|
$dimmer.off(elementEventNamespace);
|
11877
|
-
$
|
12054
|
+
$closeIcon.off(elementEventNamespace);
|
12055
|
+
if($inputs) {
|
12056
|
+
$inputs.off(elementEventNamespace);
|
12057
|
+
}
|
11878
12058
|
$context.dimmer('destroy');
|
11879
12059
|
},
|
11880
12060
|
|
11881
12061
|
observeChanges: function() {
|
11882
12062
|
if('MutationObserver' in window) {
|
11883
12063
|
observer = new MutationObserver(function(mutations) {
|
11884
|
-
|
11885
|
-
|
12064
|
+
if(settings.observeChanges) {
|
12065
|
+
module.debug('DOM tree modified, refreshing');
|
12066
|
+
module.refresh();
|
12067
|
+
}
|
12068
|
+
module.refreshInputs();
|
11886
12069
|
});
|
11887
12070
|
observer.observe(element, {
|
11888
12071
|
childList : true,
|
@@ -11907,6 +12090,23 @@ $.fn.modal = function(parameters) {
|
|
11907
12090
|
$allModals = $otherModals.add($module);
|
11908
12091
|
},
|
11909
12092
|
|
12093
|
+
refreshInputs: function(){
|
12094
|
+
if($inputs){
|
12095
|
+
$inputs
|
12096
|
+
.off('keydown' + elementEventNamespace)
|
12097
|
+
;
|
12098
|
+
}
|
12099
|
+
$inputs = $module.find('[tabindex], :input').filter(':visible').filter(function() {
|
12100
|
+
return $(this).closest('.disabled').length === 0;
|
12101
|
+
});
|
12102
|
+
$inputs.first()
|
12103
|
+
.on('keydown' + elementEventNamespace, module.event.inputKeyDown.first)
|
12104
|
+
;
|
12105
|
+
$inputs.last()
|
12106
|
+
.on('keydown' + elementEventNamespace, module.event.inputKeyDown.last)
|
12107
|
+
;
|
12108
|
+
},
|
12109
|
+
|
11910
12110
|
attachEvents: function(selector, event) {
|
11911
12111
|
var
|
11912
12112
|
$toggle = $(selector)
|
@@ -11935,6 +12135,9 @@ $.fn.modal = function(parameters) {
|
|
11935
12135
|
.on('click' + eventNamespace, selector.approve, module.event.approve)
|
11936
12136
|
.on('click' + eventNamespace, selector.deny, module.event.deny)
|
11937
12137
|
;
|
12138
|
+
$closeIcon
|
12139
|
+
.on('keyup' + elementEventNamespace, module.event.closeKeyUp)
|
12140
|
+
;
|
11938
12141
|
$window
|
11939
12142
|
.on('resize' + elementEventNamespace, module.event.resize)
|
11940
12143
|
;
|
@@ -11953,7 +12156,7 @@ $.fn.modal = function(parameters) {
|
|
11953
12156
|
|
11954
12157
|
get: {
|
11955
12158
|
id: function() {
|
11956
|
-
return
|
12159
|
+
return id;
|
11957
12160
|
},
|
11958
12161
|
element: function() {
|
11959
12162
|
return $module;
|
@@ -11992,10 +12195,38 @@ $.fn.modal = function(parameters) {
|
|
11992
12195
|
close: function() {
|
11993
12196
|
module.hide();
|
11994
12197
|
},
|
12198
|
+
closeKeyUp: function(event){
|
12199
|
+
var
|
12200
|
+
keyCode = event.which
|
12201
|
+
;
|
12202
|
+
if ((keyCode === settings.keys.enter || keyCode === settings.keys.space) && $module.hasClass(className.front)) {
|
12203
|
+
module.hide();
|
12204
|
+
}
|
12205
|
+
},
|
12206
|
+
inputKeyDown: {
|
12207
|
+
first: function(event) {
|
12208
|
+
var
|
12209
|
+
keyCode = event.which
|
12210
|
+
;
|
12211
|
+
if (keyCode === settings.keys.tab && event.shiftKey) {
|
12212
|
+
$inputs.last().focus();
|
12213
|
+
event.preventDefault();
|
12214
|
+
}
|
12215
|
+
},
|
12216
|
+
last: function(event) {
|
12217
|
+
var
|
12218
|
+
keyCode = event.which
|
12219
|
+
;
|
12220
|
+
if (keyCode === settings.keys.tab && !event.shiftKey) {
|
12221
|
+
$inputs.first().focus();
|
12222
|
+
event.preventDefault();
|
12223
|
+
}
|
12224
|
+
}
|
12225
|
+
},
|
11995
12226
|
mousedown: function(event) {
|
11996
12227
|
var
|
11997
12228
|
$target = $(event.target),
|
11998
|
-
isRtl = module.is.rtl()
|
12229
|
+
isRtl = module.is.rtl()
|
11999
12230
|
;
|
12000
12231
|
initialMouseDownInModal = ($target.closest(selector.modal).length > 0);
|
12001
12232
|
if(initialMouseDownInModal) {
|
@@ -12043,10 +12274,9 @@ $.fn.modal = function(parameters) {
|
|
12043
12274
|
},
|
12044
12275
|
keyboard: function(event) {
|
12045
12276
|
var
|
12046
|
-
keyCode = event.which
|
12047
|
-
escapeKey = 27
|
12277
|
+
keyCode = event.which
|
12048
12278
|
;
|
12049
|
-
if(keyCode
|
12279
|
+
if(keyCode === settings.keys.escape) {
|
12050
12280
|
if(settings.closable) {
|
12051
12281
|
module.debug('Escape key pressed hiding modal');
|
12052
12282
|
if ( $module.hasClass(className.front) ) {
|
@@ -12102,6 +12332,10 @@ $.fn.modal = function(parameters) {
|
|
12102
12332
|
: function(){}
|
12103
12333
|
;
|
12104
12334
|
if( module.is.animating() || !module.is.active() ) {
|
12335
|
+
if(settings.onShow.call(element) === false) {
|
12336
|
+
module.verbose('Show callback returned false cancelling show');
|
12337
|
+
return;
|
12338
|
+
}
|
12105
12339
|
module.showDimmer();
|
12106
12340
|
module.cacheSizes();
|
12107
12341
|
module.set.bodyMargin();
|
@@ -12131,7 +12365,6 @@ $.fn.modal = function(parameters) {
|
|
12131
12365
|
$module.detach().appendTo($dimmer);
|
12132
12366
|
}
|
12133
12367
|
}
|
12134
|
-
settings.onShow.call(element);
|
12135
12368
|
if(settings.transition && $.fn.transition !== undefined && $module.transition('is supported')) {
|
12136
12369
|
module.debug('Showing modal with css animations');
|
12137
12370
|
$module
|
@@ -12174,7 +12407,6 @@ $.fn.modal = function(parameters) {
|
|
12174
12407
|
? callback
|
12175
12408
|
: function(){}
|
12176
12409
|
;
|
12177
|
-
module.debug('Hiding modal');
|
12178
12410
|
if(settings.onHide.call(element, $(this)) === false) {
|
12179
12411
|
module.verbose('Hide callback returned false cancelling hide');
|
12180
12412
|
ignoreRepeatedEvents = false;
|
@@ -12182,6 +12414,7 @@ $.fn.modal = function(parameters) {
|
|
12182
12414
|
}
|
12183
12415
|
|
12184
12416
|
if( module.is.animating() || module.is.active() ) {
|
12417
|
+
module.debug('Hiding modal');
|
12185
12418
|
if(settings.transition && $.fn.transition !== undefined && $module.transition('is supported')) {
|
12186
12419
|
module.remove.active();
|
12187
12420
|
$module
|
@@ -12361,7 +12594,7 @@ $.fn.modal = function(parameters) {
|
|
12361
12594
|
$module
|
12362
12595
|
.off('mousedown' + elementEventNamespace)
|
12363
12596
|
;
|
12364
|
-
}
|
12597
|
+
}
|
12365
12598
|
$dimmer
|
12366
12599
|
.off('mousedown' + elementEventNamespace)
|
12367
12600
|
;
|
@@ -12546,13 +12779,10 @@ $.fn.modal = function(parameters) {
|
|
12546
12779
|
set: {
|
12547
12780
|
autofocus: function() {
|
12548
12781
|
var
|
12549
|
-
$inputs = $module.find('[tabindex], :input').filter(':visible').filter(function() {
|
12550
|
-
return $(this).closest('.disabled').length === 0;
|
12551
|
-
}),
|
12552
12782
|
$autofocus = $inputs.filter('[autofocus]'),
|
12553
12783
|
$input = ($autofocus.length > 0)
|
12554
12784
|
? $autofocus.first()
|
12555
|
-
: $inputs.first()
|
12785
|
+
: ($inputs.length > 1 ? $inputs.filter(':not(i.close)') : $inputs).first()
|
12556
12786
|
;
|
12557
12787
|
if($input.length > 0) {
|
12558
12788
|
$input.focus();
|
@@ -12634,7 +12864,7 @@ $.fn.modal = function(parameters) {
|
|
12634
12864
|
? $(document).scrollTop() + settings.padding
|
12635
12865
|
: $(document).scrollTop() + (module.cache.contextHeight - module.cache.height - settings.padding),
|
12636
12866
|
marginLeft: -(module.cache.width / 2)
|
12637
|
-
})
|
12867
|
+
})
|
12638
12868
|
;
|
12639
12869
|
} else {
|
12640
12870
|
$module
|
@@ -12643,7 +12873,7 @@ $.fn.modal = function(parameters) {
|
|
12643
12873
|
? -(module.cache.height / 2)
|
12644
12874
|
: settings.padding / 2,
|
12645
12875
|
marginLeft: -(module.cache.width / 2)
|
12646
|
-
})
|
12876
|
+
})
|
12647
12877
|
;
|
12648
12878
|
}
|
12649
12879
|
module.verbose('Setting modal offset for legacy mode');
|
@@ -12969,11 +13199,19 @@ $.fn.modal.settings = {
|
|
12969
13199
|
// called after deny selector match
|
12970
13200
|
onDeny : function(){ return true; },
|
12971
13201
|
|
13202
|
+
keys : {
|
13203
|
+
space : 32,
|
13204
|
+
enter : 13,
|
13205
|
+
escape : 27,
|
13206
|
+
tab : 9,
|
13207
|
+
},
|
13208
|
+
|
12972
13209
|
selector : {
|
12973
13210
|
title : '> .header',
|
12974
13211
|
content : '> .content',
|
12975
13212
|
actions : '> .actions',
|
12976
13213
|
close : '> .close',
|
13214
|
+
closeIcon: '> .close',
|
12977
13215
|
approve : '.actions .positive, .actions .approve, .actions .ok',
|
12978
13216
|
deny : '.actions .negative, .actions .deny, .actions .cancel',
|
12979
13217
|
modal : '.ui.modal',
|
@@ -13005,11 +13243,13 @@ $.fn.modal.settings = {
|
|
13005
13243
|
template : 'ui tiny modal',
|
13006
13244
|
ok : 'positive',
|
13007
13245
|
cancel : 'negative',
|
13008
|
-
prompt : 'ui fluid input'
|
13246
|
+
prompt : 'ui fluid input',
|
13247
|
+
innerDimmer: 'ui inverted dimmer'
|
13009
13248
|
},
|
13010
13249
|
text: {
|
13011
13250
|
ok : 'Ok',
|
13012
|
-
cancel: 'Cancel'
|
13251
|
+
cancel: 'Cancel',
|
13252
|
+
close : 'Close'
|
13013
13253
|
}
|
13014
13254
|
};
|
13015
13255
|
|
@@ -13035,33 +13275,39 @@ $.fn.modal.settings.templates = {
|
|
13035
13275
|
},
|
13036
13276
|
alert: function () {
|
13037
13277
|
var settings = this.get.settings(),
|
13038
|
-
args = settings.templates.getArguments(arguments)
|
13278
|
+
args = settings.templates.getArguments(arguments),
|
13279
|
+
approveFn = args.handler
|
13039
13280
|
;
|
13040
13281
|
return {
|
13041
13282
|
title : args.title,
|
13042
13283
|
content: args.content,
|
13284
|
+
onApprove: approveFn,
|
13043
13285
|
actions: [{
|
13044
13286
|
text : settings.text.ok,
|
13045
13287
|
class: settings.className.ok,
|
13046
|
-
click:
|
13288
|
+
click: approveFn
|
13047
13289
|
}]
|
13048
13290
|
}
|
13049
13291
|
},
|
13050
13292
|
confirm: function () {
|
13051
13293
|
var settings = this.get.settings(),
|
13052
|
-
args = settings.templates.getArguments(arguments)
|
13294
|
+
args = settings.templates.getArguments(arguments),
|
13295
|
+
approveFn = function(){args.handler(true)},
|
13296
|
+
denyFn = function(){args.handler(false)}
|
13053
13297
|
;
|
13054
13298
|
return {
|
13055
13299
|
title : args.title,
|
13056
13300
|
content: args.content,
|
13301
|
+
onApprove: approveFn,
|
13302
|
+
onDeny: denyFn,
|
13057
13303
|
actions: [{
|
13058
13304
|
text : settings.text.ok,
|
13059
13305
|
class: settings.className.ok,
|
13060
|
-
click:
|
13306
|
+
click: approveFn
|
13061
13307
|
},{
|
13062
13308
|
text: settings.text.cancel,
|
13063
13309
|
class: settings.className.cancel,
|
13064
|
-
click:
|
13310
|
+
click: denyFn
|
13065
13311
|
}]
|
13066
13312
|
}
|
13067
13313
|
},
|
@@ -13069,7 +13315,14 @@ $.fn.modal.settings.templates = {
|
|
13069
13315
|
var $this = this,
|
13070
13316
|
settings = this.get.settings(),
|
13071
13317
|
args = settings.templates.getArguments(arguments),
|
13072
|
-
input = $($.parseHTML(args.content)).filter('.ui.input')
|
13318
|
+
input = $($.parseHTML(args.content)).filter('.ui.input'),
|
13319
|
+
approveFn = function(){
|
13320
|
+
var settings = $this.get.settings(),
|
13321
|
+
inputField = $this.get.element().find(settings.selector.prompt)[0]
|
13322
|
+
;
|
13323
|
+
args.handler($(inputField).val());
|
13324
|
+
},
|
13325
|
+
denyFn = function(){args.handler(null)}
|
13073
13326
|
;
|
13074
13327
|
if (input.length === 0) {
|
13075
13328
|
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>';
|
@@ -13077,19 +13330,16 @@ $.fn.modal.settings.templates = {
|
|
13077
13330
|
return {
|
13078
13331
|
title : args.title,
|
13079
13332
|
content: args.content,
|
13333
|
+
onApprove: approveFn,
|
13334
|
+
onDeny: denyFn,
|
13080
13335
|
actions: [{
|
13081
13336
|
text: settings.text.ok,
|
13082
13337
|
class: settings.className.ok,
|
13083
|
-
click:
|
13084
|
-
var settings = $this.get.settings(),
|
13085
|
-
inputField = $this.get.element().find(settings.selector.prompt)[0]
|
13086
|
-
;
|
13087
|
-
args.handler($(inputField).val());
|
13088
|
-
}
|
13338
|
+
click: approveFn
|
13089
13339
|
},{
|
13090
13340
|
text: settings.text.cancel,
|
13091
13341
|
class: settings.className.cancel,
|
13092
|
-
click:
|
13342
|
+
click: denyFn
|
13093
13343
|
}]
|
13094
13344
|
}
|
13095
13345
|
}
|
@@ -13098,7 +13348,7 @@ $.fn.modal.settings.templates = {
|
|
13098
13348
|
})( jQuery, window, document );
|
13099
13349
|
|
13100
13350
|
/*!
|
13101
|
-
* # Fomantic-UI 2.9.0-beta.
|
13351
|
+
* # Fomantic-UI 2.9.0-beta.301+42e68bc - Nag
|
13102
13352
|
* http://github.com/fomantic/Fomantic-UI/
|
13103
13353
|
*
|
13104
13354
|
*
|
@@ -13152,7 +13402,7 @@ $.fn.nag = function(parameters) {
|
|
13152
13402
|
$module = $(this),
|
13153
13403
|
|
13154
13404
|
$context = (settings.context)
|
13155
|
-
? $(settings.context)
|
13405
|
+
? ([window,document].indexOf(settings.context) < 0 ? $(document).find(settings.context) : $(settings.context))
|
13156
13406
|
: $('body'),
|
13157
13407
|
|
13158
13408
|
element = this,
|
@@ -13657,7 +13907,7 @@ $.extend( $.easing, {
|
|
13657
13907
|
})( jQuery, window, document );
|
13658
13908
|
|
13659
13909
|
/*!
|
13660
|
-
* # Fomantic-UI 2.9.0-beta.
|
13910
|
+
* # Fomantic-UI 2.9.0-beta.301+42e68bc - Popup
|
13661
13911
|
* http://github.com/fomantic/Fomantic-UI/
|
13662
13912
|
*
|
13663
13913
|
*
|
@@ -13720,11 +13970,11 @@ $.fn.popup = function(parameters) {
|
|
13720
13970
|
moduleNamespace = 'module-' + namespace,
|
13721
13971
|
|
13722
13972
|
$module = $(this),
|
13723
|
-
$context = $(settings.context),
|
13724
|
-
$scrollContext = $(settings.scrollContext),
|
13725
|
-
$boundary = $(settings.boundary),
|
13973
|
+
$context = [window,document].indexOf(settings.context) < 0 ? $(document).find(settings.context) : $(settings.context),
|
13974
|
+
$scrollContext = [window,document].indexOf(settings.scrollContext) < 0 ? $(document).find(settings.scrollContext) : $(settings.scrollContext),
|
13975
|
+
$boundary = [window,document].indexOf(settings.boundary) < 0 ? $(document).find(settings.boundary) : $(settings.boundary),
|
13726
13976
|
$target = (settings.target)
|
13727
|
-
? $(settings.target)
|
13977
|
+
? ([window,document].indexOf(settings.target) < 0 ? $(document).find(settings.target) : $(settings.target))
|
13728
13978
|
: $module,
|
13729
13979
|
|
13730
13980
|
$popup,
|
@@ -13779,8 +14029,8 @@ $.fn.popup = function(parameters) {
|
|
13779
14029
|
},
|
13780
14030
|
|
13781
14031
|
refresh: function() {
|
13782
|
-
if(settings.popup) {
|
13783
|
-
$popup = $(settings.popup).eq(0);
|
14032
|
+
if(settings.popup && typeof settings.popup === 'string') {
|
14033
|
+
$popup = $(document).find(settings.popup).eq(0);
|
13784
14034
|
}
|
13785
14035
|
else {
|
13786
14036
|
if(settings.inline) {
|
@@ -13944,8 +14194,8 @@ $.fn.popup = function(parameters) {
|
|
13944
14194
|
}
|
13945
14195
|
settings.onCreate.call($popup, element);
|
13946
14196
|
}
|
13947
|
-
else if(settings.popup) {
|
13948
|
-
$(settings.popup).data(metadata.activator, $module);
|
14197
|
+
else if(settings.popup && typeof settings.popup === 'string') {
|
14198
|
+
$(document).find(settings.popup).data(metadata.activator, $module);
|
13949
14199
|
module.verbose('Used popup specified in settings');
|
13950
14200
|
module.refresh();
|
13951
14201
|
if(settings.hoverable) {
|
@@ -13967,7 +14217,7 @@ $.fn.popup = function(parameters) {
|
|
13967
14217
|
},
|
13968
14218
|
|
13969
14219
|
createID: function() {
|
13970
|
-
id = (Math.random().toString(16) + '000000000').
|
14220
|
+
id = (Math.random().toString(16) + '000000000').slice(2, 10);
|
13971
14221
|
elementNamespace = '.' + id;
|
13972
14222
|
module.verbose('Creating unique id for element', id);
|
13973
14223
|
},
|
@@ -14026,7 +14276,7 @@ $.fn.popup = function(parameters) {
|
|
14026
14276
|
},
|
14027
14277
|
|
14028
14278
|
hideAll: function() {
|
14029
|
-
$(selector.popup)
|
14279
|
+
$(document).find(selector.popup)
|
14030
14280
|
.filter('.' + className.popupVisible)
|
14031
14281
|
.each(function() {
|
14032
14282
|
$(this)
|
@@ -15199,7 +15449,7 @@ $.fn.popup.settings = {
|
|
15199
15449
|
})( jQuery, window, document );
|
15200
15450
|
|
15201
15451
|
/*!
|
15202
|
-
* # Fomantic-UI 2.9.0-beta.
|
15452
|
+
* # Fomantic-UI 2.9.0-beta.301+42e68bc - Progress
|
15203
15453
|
* http://github.com/fomantic/Fomantic-UI/
|
15204
15454
|
*
|
15205
15455
|
*
|
@@ -15293,7 +15543,7 @@ $.fn.progress = function(parameters) {
|
|
15293
15543
|
*
|
15294
15544
|
* @param min A minimum value within multiple values
|
15295
15545
|
* @param total A total amount of multiple values
|
15296
|
-
* @returns {number} A
|
15546
|
+
* @returns {number} A precision. Could be 1, 10, 100, ... 1e+10.
|
15297
15547
|
*/
|
15298
15548
|
derivePrecision: function(min, total) {
|
15299
15549
|
var precisionPower = 0
|
@@ -15807,6 +16057,9 @@ $.fn.progress = function(parameters) {
|
|
15807
16057
|
}
|
15808
16058
|
else {
|
15809
16059
|
module.remove.active();
|
16060
|
+
module.remove.warning();
|
16061
|
+
module.remove.error();
|
16062
|
+
module.remove.success();
|
15810
16063
|
module.set.label(settings.text.active);
|
15811
16064
|
}
|
15812
16065
|
},
|
@@ -16191,7 +16444,7 @@ $.fn.progress.settings = {
|
|
16191
16444
|
nonNumeric : 'Progress value is non numeric',
|
16192
16445
|
tooHigh : 'Value specified is above 100%',
|
16193
16446
|
tooLow : 'Value specified is below 0%',
|
16194
|
-
sumExceedsTotal : 'Sum of
|
16447
|
+
sumExceedsTotal : 'Sum of multiple values exceed total',
|
16195
16448
|
},
|
16196
16449
|
|
16197
16450
|
regExp: {
|
@@ -16233,7 +16486,7 @@ $.fn.progress.settings = {
|
|
16233
16486
|
})( jQuery, window, document );
|
16234
16487
|
|
16235
16488
|
/*!
|
16236
|
-
* # Fomantic-UI 2.9.0-beta.
|
16489
|
+
* # Fomantic-UI 2.9.0-beta.301+42e68bc - Slider
|
16237
16490
|
* http://github.com/fomantic/Fomantic-UI/
|
16238
16491
|
*
|
16239
16492
|
*
|
@@ -16304,6 +16557,7 @@ $.fn.slider = function(parameters) {
|
|
16304
16557
|
|
16305
16558
|
$module = $(this),
|
16306
16559
|
$currThumb,
|
16560
|
+
touchIdentifier,
|
16307
16561
|
$thumb,
|
16308
16562
|
$secondThumb,
|
16309
16563
|
$track,
|
@@ -16320,7 +16574,6 @@ $.fn.slider = function(parameters) {
|
|
16320
16574
|
secondPos,
|
16321
16575
|
offset,
|
16322
16576
|
precision,
|
16323
|
-
isTouch,
|
16324
16577
|
gapRatio = 1,
|
16325
16578
|
previousValue,
|
16326
16579
|
|
@@ -16338,7 +16591,6 @@ $.fn.slider = function(parameters) {
|
|
16338
16591
|
currentRange += 1;
|
16339
16592
|
documentEventID = currentRange;
|
16340
16593
|
|
16341
|
-
isTouch = module.setup.testOutTouch();
|
16342
16594
|
module.setup.layout();
|
16343
16595
|
module.setup.labels();
|
16344
16596
|
|
@@ -16409,14 +16661,6 @@ $.fn.slider = function(parameters) {
|
|
16409
16661
|
}
|
16410
16662
|
}
|
16411
16663
|
},
|
16412
|
-
testOutTouch: function() {
|
16413
|
-
try {
|
16414
|
-
document.createEvent('TouchEvent');
|
16415
|
-
return true;
|
16416
|
-
} catch (e) {
|
16417
|
-
return false;
|
16418
|
-
}
|
16419
|
-
},
|
16420
16664
|
customLabel: function() {
|
16421
16665
|
var
|
16422
16666
|
$children = $labels.find('.label'),
|
@@ -16470,9 +16714,6 @@ $.fn.slider = function(parameters) {
|
|
16470
16714
|
module.bind.globalKeyboardEvents();
|
16471
16715
|
module.bind.keyboardEvents();
|
16472
16716
|
module.bind.mouseEvents();
|
16473
|
-
if(module.is.touch()) {
|
16474
|
-
module.bind.touchEvents();
|
16475
|
-
}
|
16476
16717
|
if (settings.autoAdjustLabels) {
|
16477
16718
|
module.bind.windowEvents();
|
16478
16719
|
}
|
@@ -16485,7 +16726,7 @@ $.fn.slider = function(parameters) {
|
|
16485
16726
|
$(document).on('keydown' + eventNamespace + documentEventID, module.event.activateFocus);
|
16486
16727
|
},
|
16487
16728
|
mouseEvents: function() {
|
16488
|
-
module.verbose('Binding mouse events');
|
16729
|
+
module.verbose('Binding mouse and touch events');
|
16489
16730
|
$module.find('.track, .thumb, .inner').on('mousedown' + eventNamespace, function(event) {
|
16490
16731
|
event.stopImmediatePropagation();
|
16491
16732
|
event.preventDefault();
|
@@ -16498,27 +16739,20 @@ $.fn.slider = function(parameters) {
|
|
16498
16739
|
$module.on('mouseleave' + eventNamespace, function(event) {
|
16499
16740
|
isHover = false;
|
16500
16741
|
});
|
16501
|
-
|
16502
|
-
|
16503
|
-
|
16504
|
-
$module.find('.
|
16505
|
-
event.
|
16506
|
-
event.
|
16507
|
-
module.event.
|
16508
|
-
|
16509
|
-
$module.on('touchstart' + eventNamespace, module.event.down);
|
16742
|
+
// All touch events are invoked on the element where the touch *started*. Thus, we can bind them all
|
16743
|
+
// on the thumb(s) and don't need to worry about interference with other components, i.e. no dynamic binding
|
16744
|
+
// and unbinding required.
|
16745
|
+
$module.find('.thumb')
|
16746
|
+
.on('touchstart' + eventNamespace, module.event.touchDown)
|
16747
|
+
.on('touchmove' + eventNamespace, module.event.move)
|
16748
|
+
.on('touchend' + eventNamespace, module.event.up)
|
16749
|
+
.on('touchcancel' + eventNamespace, module.event.touchCancel);
|
16510
16750
|
},
|
16511
16751
|
slidingEvents: function() {
|
16512
16752
|
// these don't need the identifier because we only ever want one of them to be registered with document
|
16513
16753
|
module.verbose('Binding page wide events while handle is being draged');
|
16514
|
-
|
16515
|
-
|
16516
|
-
$(document).on('touchend' + eventNamespace, module.event.up);
|
16517
|
-
}
|
16518
|
-
else {
|
16519
|
-
$(document).on('mousemove' + eventNamespace, module.event.move);
|
16520
|
-
$(document).on('mouseup' + eventNamespace, module.event.up);
|
16521
|
-
}
|
16754
|
+
$(document).on('mousemove' + eventNamespace, module.event.move);
|
16755
|
+
$(document).on('mouseup' + eventNamespace, module.event.up);
|
16522
16756
|
},
|
16523
16757
|
windowEvents: function() {
|
16524
16758
|
$window.on('resize' + eventNamespace, module.event.resize);
|
@@ -16528,24 +16762,22 @@ $.fn.slider = function(parameters) {
|
|
16528
16762
|
unbind: {
|
16529
16763
|
events: function() {
|
16530
16764
|
$module.find('.track, .thumb, .inner').off('mousedown' + eventNamespace);
|
16531
|
-
$module.find('.track, .thumb, .inner').off('touchstart' + eventNamespace);
|
16532
16765
|
$module.off('mousedown' + eventNamespace);
|
16533
16766
|
$module.off('mouseenter' + eventNamespace);
|
16534
16767
|
$module.off('mouseleave' + eventNamespace);
|
16535
|
-
$module.
|
16768
|
+
$module.find('.thumb')
|
16769
|
+
.off('touchstart' + eventNamespace)
|
16770
|
+
.off('touchmove' + eventNamespace)
|
16771
|
+
.off('touchend' + eventNamespace)
|
16772
|
+
.off('touchcancel' + eventNamespace);
|
16536
16773
|
$module.off('keydown' + eventNamespace);
|
16537
16774
|
$module.off('focusout' + eventNamespace);
|
16538
16775
|
$(document).off('keydown' + eventNamespace + documentEventID, module.event.activateFocus);
|
16539
16776
|
$window.off('resize' + eventNamespace);
|
16540
16777
|
},
|
16541
16778
|
slidingEvents: function() {
|
16542
|
-
|
16543
|
-
|
16544
|
-
$(document).off('touchend' + eventNamespace);
|
16545
|
-
} else {
|
16546
|
-
$(document).off('mousemove' + eventNamespace);
|
16547
|
-
$(document).off('mouseup' + eventNamespace);
|
16548
|
-
}
|
16779
|
+
$(document).off('mousemove' + eventNamespace);
|
16780
|
+
$(document).off('mouseup' + eventNamespace);
|
16549
16781
|
},
|
16550
16782
|
},
|
16551
16783
|
|
@@ -16575,10 +16807,31 @@ $.fn.slider = function(parameters) {
|
|
16575
16807
|
module.bind.slidingEvents();
|
16576
16808
|
}
|
16577
16809
|
},
|
16810
|
+
touchDown: function(event) {
|
16811
|
+
event.preventDefault(); // disable mouse emulation and touch-scrolling
|
16812
|
+
event.stopImmediatePropagation();
|
16813
|
+
if(touchIdentifier !== undefined) {
|
16814
|
+
// ignore multiple touches on the same slider --
|
16815
|
+
// we cannot handle changing both thumbs at once due to shared state
|
16816
|
+
return;
|
16817
|
+
}
|
16818
|
+
$currThumb = $(event.target);
|
16819
|
+
var touchEvent = event.touches ? event : event.originalEvent;
|
16820
|
+
touchIdentifier = touchEvent.targetTouches[0].identifier;
|
16821
|
+
if(previousValue === undefined) {
|
16822
|
+
previousValue = module.get.currentThumbValue();
|
16823
|
+
}
|
16824
|
+
},
|
16578
16825
|
move: function(event) {
|
16579
|
-
event.
|
16826
|
+
if(event.type == 'mousemove') {
|
16827
|
+
event.preventDefault(); // prevent text selection etc.
|
16828
|
+
}
|
16829
|
+
if(module.is.disabled()) {
|
16830
|
+
// touch events are always bound, so we need to prevent touch-sliding on disabled sliders here
|
16831
|
+
return;
|
16832
|
+
}
|
16580
16833
|
var value = module.determine.valueFromEvent(event);
|
16581
|
-
if($currThumb === undefined) {
|
16834
|
+
if(event.type == 'mousemove' && $currThumb === undefined) {
|
16582
16835
|
var
|
16583
16836
|
eventPos = module.determine.eventPos(event),
|
16584
16837
|
newPos = module.determine.pos(eventPos)
|
@@ -16615,10 +16868,23 @@ $.fn.slider = function(parameters) {
|
|
16615
16868
|
},
|
16616
16869
|
up: function(event) {
|
16617
16870
|
event.preventDefault();
|
16871
|
+
if(module.is.disabled()) {
|
16872
|
+
// touch events are always bound, so we need to prevent touch-sliding on disabled sliders here
|
16873
|
+
return;
|
16874
|
+
}
|
16618
16875
|
var value = module.determine.valueFromEvent(event);
|
16619
16876
|
module.set.value(value);
|
16620
16877
|
module.unbind.slidingEvents();
|
16878
|
+
touchIdentifier = undefined;
|
16879
|
+
if (previousValue !== undefined) {
|
16880
|
+
previousValue = undefined;
|
16881
|
+
}
|
16882
|
+
},
|
16883
|
+
touchCancel: function(event) {
|
16884
|
+
event.preventDefault();
|
16885
|
+
touchIdentifier = undefined;
|
16621
16886
|
if (previousValue !== undefined) {
|
16887
|
+
module.update.value(previousValue);
|
16622
16888
|
previousValue = undefined;
|
16623
16889
|
}
|
16624
16890
|
},
|
@@ -16734,9 +17000,6 @@ $.fn.slider = function(parameters) {
|
|
16734
17000
|
},
|
16735
17001
|
smooth: function() {
|
16736
17002
|
return settings.smooth || $module.hasClass(settings.className.smooth);
|
16737
|
-
},
|
16738
|
-
touch: function() {
|
16739
|
-
return isTouch;
|
16740
17003
|
}
|
16741
17004
|
},
|
16742
17005
|
|
@@ -17000,12 +17263,19 @@ $.fn.slider = function(parameters) {
|
|
17000
17263
|
return value;
|
17001
17264
|
},
|
17002
17265
|
eventPos: function(event) {
|
17003
|
-
if(
|
17266
|
+
if(event.type === "touchmove" || event.type === "touchend") {
|
17267
|
+
var
|
17268
|
+
touchEvent = event.touches ? event : event.originalEvent,
|
17269
|
+
touch = touchEvent.changedTouches[0]; // fall back to first touch if correct touch not found
|
17270
|
+
for(var i=0; i < touchEvent.touches.length; i++) {
|
17271
|
+
if(touchEvent.touches[i].identifier === touchIdentifier) {
|
17272
|
+
touch = touchEvent.touches[i];
|
17273
|
+
break;
|
17274
|
+
}
|
17275
|
+
}
|
17004
17276
|
var
|
17005
|
-
|
17006
|
-
|
17007
|
-
touchY = touches[0].pageY,
|
17008
|
-
touchX = touches[0].pageX
|
17277
|
+
touchY = touch.pageY,
|
17278
|
+
touchX = touch.pageX
|
17009
17279
|
;
|
17010
17280
|
return module.is.vertical() ? touchY : touchX;
|
17011
17281
|
}
|
@@ -17572,7 +17842,7 @@ $.fn.slider.settings = {
|
|
17572
17842
|
})( jQuery, window, document );
|
17573
17843
|
|
17574
17844
|
/*!
|
17575
|
-
* # Fomantic-UI 2.9.0-beta.
|
17845
|
+
* # Fomantic-UI 2.9.0-beta.301+42e68bc - Rating
|
17576
17846
|
* http://github.com/fomantic/Fomantic-UI/
|
17577
17847
|
*
|
17578
17848
|
*
|
@@ -18127,7 +18397,7 @@ $.fn.rating.settings = {
|
|
18127
18397
|
})( jQuery, window, document );
|
18128
18398
|
|
18129
18399
|
/*!
|
18130
|
-
* # Fomantic-UI 2.9.0-beta.
|
18400
|
+
* # Fomantic-UI 2.9.0-beta.301+42e68bc - Search
|
18131
18401
|
* http://github.com/fomantic/Fomantic-UI/
|
18132
18402
|
*
|
18133
18403
|
*
|
@@ -18495,20 +18765,36 @@ $.fn.search = function(parameters) {
|
|
18495
18765
|
urlData : {
|
18496
18766
|
query : searchTerm
|
18497
18767
|
},
|
18498
|
-
|
18768
|
+
},
|
18769
|
+
apiCallbacks = {
|
18770
|
+
onSuccess : function(response, $module, xhr) {
|
18499
18771
|
module.parse.response.call(element, response, searchTerm);
|
18500
18772
|
callback();
|
18773
|
+
if(settings.apiSettings && typeof settings.apiSettings.onSuccess === 'function') {
|
18774
|
+
settings.apiSettings.onSuccess.call(this, response, $module, xhr);
|
18775
|
+
}
|
18501
18776
|
},
|
18502
|
-
onFailure : function() {
|
18777
|
+
onFailure : function(response, $module, xhr) {
|
18503
18778
|
module.displayMessage(error.serverError);
|
18504
18779
|
callback();
|
18780
|
+
if(settings.apiSettings && typeof settings.apiSettings.onFailure === 'function') {
|
18781
|
+
settings.apiSettings.onFailure.call(this, response, $module, xhr);
|
18782
|
+
}
|
18505
18783
|
},
|
18506
|
-
onAbort : function(
|
18784
|
+
onAbort : function(status, $module, xhr) {
|
18785
|
+
if(settings.apiSettings && typeof settings.apiSettings.onAbort === 'function') {
|
18786
|
+
settings.apiSettings.onAbort.call(this, status, $module, xhr);
|
18787
|
+
}
|
18507
18788
|
},
|
18508
|
-
onError : module
|
18789
|
+
onError : function(errorMessage, $module, xhr){
|
18790
|
+
module.error();
|
18791
|
+
if(settings.apiSettings && typeof settings.apiSettings.onError === 'function') {
|
18792
|
+
settings.apiSettings.onError.call(this, errorMessage, $module, xhr);
|
18793
|
+
}
|
18794
|
+
}
|
18509
18795
|
}
|
18510
18796
|
;
|
18511
|
-
$.extend(true, apiSettings, settings.apiSettings);
|
18797
|
+
$.extend(true, apiSettings, settings.apiSettings, apiCallbacks);
|
18512
18798
|
module.verbose('Setting up API request', apiSettings);
|
18513
18799
|
$module.api(apiSettings);
|
18514
18800
|
}
|
@@ -18531,7 +18817,7 @@ $.fn.search = function(parameters) {
|
|
18531
18817
|
return $results.hasClass(className.animating);
|
18532
18818
|
},
|
18533
18819
|
chrome: function() {
|
18534
|
-
return !!window.chrome &&
|
18820
|
+
return !!window.chrome && !window.StyleMedia;
|
18535
18821
|
},
|
18536
18822
|
hidden: function() {
|
18537
18823
|
return $results.hasClass(className.hidden);
|
@@ -19695,7 +19981,7 @@ $.fn.search.settings = {
|
|
19695
19981
|
})( jQuery, window, document );
|
19696
19982
|
|
19697
19983
|
/*!
|
19698
|
-
* # Fomantic-UI 2.9.0-beta.
|
19984
|
+
* # Fomantic-UI 2.9.0-beta.301+42e68bc - Shape
|
19699
19985
|
* http://github.com/fomantic/Fomantic-UI/
|
19700
19986
|
*
|
19701
19987
|
*
|
@@ -19822,7 +20108,7 @@ $.fn.shape = function(parameters) {
|
|
19822
20108
|
module.reset();
|
19823
20109
|
module.set.active();
|
19824
20110
|
};
|
19825
|
-
settings.
|
20111
|
+
settings.onBeforeChange.call($nextSide[0]);
|
19826
20112
|
if(module.get.transitionEvent()) {
|
19827
20113
|
module.verbose('Starting CSS animation');
|
19828
20114
|
$module
|
@@ -20509,7 +20795,7 @@ $.fn.shape.settings = {
|
|
20509
20795
|
height: 'initial',
|
20510
20796
|
|
20511
20797
|
// callback occurs on side change
|
20512
|
-
|
20798
|
+
onBeforeChange : function() {},
|
20513
20799
|
onChange : function() {},
|
20514
20800
|
|
20515
20801
|
// allow animation to same side
|
@@ -20544,7 +20830,7 @@ $.fn.shape.settings = {
|
|
20544
20830
|
})( jQuery, window, document );
|
20545
20831
|
|
20546
20832
|
/*!
|
20547
|
-
* # Fomantic-UI 2.9.0-beta.
|
20833
|
+
* # Fomantic-UI 2.9.0-beta.301+42e68bc - Sidebar
|
20548
20834
|
* http://github.com/fomantic/Fomantic-UI/
|
20549
20835
|
*
|
20550
20836
|
*
|
@@ -20611,7 +20897,7 @@ $.fn.sidebar = function(parameters) {
|
|
20611
20897
|
moduleNamespace = 'module-' + namespace,
|
20612
20898
|
|
20613
20899
|
$module = $(this),
|
20614
|
-
$context = $(settings.context),
|
20900
|
+
$context = [window,document].indexOf(settings.context) < 0 ? $(document).find(settings.context) : $(settings.context),
|
20615
20901
|
|
20616
20902
|
$sidebars = $module.children(selector.sidebar),
|
20617
20903
|
$fixed = $context.children(selector.fixed),
|
@@ -20663,7 +20949,7 @@ $.fn.sidebar = function(parameters) {
|
|
20663
20949
|
|
20664
20950
|
create: {
|
20665
20951
|
id: function() {
|
20666
|
-
id = (Math.random().toString(16) + '000000000').
|
20952
|
+
id = (Math.random().toString(16) + '000000000').slice(2, 10);
|
20667
20953
|
elementNamespace = '.' + id;
|
20668
20954
|
module.verbose('Creating unique id for element', id);
|
20669
20955
|
}
|
@@ -20806,7 +21092,7 @@ $.fn.sidebar = function(parameters) {
|
|
20806
21092
|
if(direction === 'left' || direction === 'right') {
|
20807
21093
|
module.debug('Adding CSS rules for animation distance', width);
|
20808
21094
|
style += ''
|
20809
|
-
+ ' body.pushable > .ui.visible.' + direction + '.sidebar ~ .pusher
|
21095
|
+
+ ' body.pushable > .ui.visible.' + direction + '.sidebar ~ .pusher::after {'
|
20810
21096
|
+ ' -webkit-transform: translate3d('+ distance[direction] + 'px, 0, 0);'
|
20811
21097
|
+ ' transform: translate3d('+ distance[direction] + 'px, 0, 0);'
|
20812
21098
|
+ ' }'
|
@@ -20814,7 +21100,7 @@ $.fn.sidebar = function(parameters) {
|
|
20814
21100
|
}
|
20815
21101
|
else if(direction === 'top' || direction == 'bottom') {
|
20816
21102
|
style += ''
|
20817
|
-
+ ' body.pushable > .ui.visible.' + direction + '.sidebar ~ .pusher
|
21103
|
+
+ ' body.pushable > .ui.visible.' + direction + '.sidebar ~ .pusher::after {'
|
20818
21104
|
+ ' -webkit-transform: translate3d(0, ' + distance[direction] + 'px, 0);'
|
20819
21105
|
+ ' transform: translate3d(0, ' + distance[direction] + 'px, 0);'
|
20820
21106
|
+ ' }'
|
@@ -20822,8 +21108,8 @@ $.fn.sidebar = function(parameters) {
|
|
20822
21108
|
}
|
20823
21109
|
/* opposite sides visible forces content overlay */
|
20824
21110
|
style += ''
|
20825
|
-
+ ' body.pushable > .ui.visible.left.sidebar ~ .ui.visible.right.sidebar ~ .pusher
|
20826
|
-
+ ' body.pushable > .ui.visible.right.sidebar ~ .ui.visible.left.sidebar ~ .pusher
|
21111
|
+
+ ' body.pushable > .ui.visible.left.sidebar ~ .ui.visible.right.sidebar ~ .pusher::after,'
|
21112
|
+
+ ' body.pushable > .ui.visible.right.sidebar ~ .ui.visible.left.sidebar ~ .pusher::after {'
|
20827
21113
|
+ ' -webkit-transform: translate3d(0, 0, 0);'
|
20828
21114
|
+ ' transform: translate3d(0, 0, 0);'
|
20829
21115
|
+ ' }'
|
@@ -20839,7 +21125,7 @@ $.fn.sidebar = function(parameters) {
|
|
20839
21125
|
|
20840
21126
|
refresh: function() {
|
20841
21127
|
module.verbose('Refreshing selector cache');
|
20842
|
-
$context = $(settings.context);
|
21128
|
+
$context = [window,document].indexOf(settings.context) < 0 ? $(document).find(settings.context) : $(settings.context);
|
20843
21129
|
$sidebars = $context.children(selector.sidebar);
|
20844
21130
|
$pusher = $context.children(selector.pusher);
|
20845
21131
|
$fixed = $context.children(selector.fixed);
|
@@ -20916,6 +21202,10 @@ $.fn.sidebar = function(parameters) {
|
|
20916
21202
|
: function(){}
|
20917
21203
|
;
|
20918
21204
|
if(module.is.hidden()) {
|
21205
|
+
if(settings.onShow.call(element) === false) {
|
21206
|
+
module.verbose('Show callback returned false cancelling show');
|
21207
|
+
return;
|
21208
|
+
}
|
20919
21209
|
module.refreshSidebars();
|
20920
21210
|
if(settings.overlay) {
|
20921
21211
|
module.error(error.overlay);
|
@@ -20940,10 +21230,9 @@ $.fn.sidebar = function(parameters) {
|
|
20940
21230
|
}
|
20941
21231
|
module.pushPage(function() {
|
20942
21232
|
callback.call(element);
|
20943
|
-
settings.
|
21233
|
+
settings.onVisible.call(element);
|
20944
21234
|
});
|
20945
21235
|
settings.onChange.call(element);
|
20946
|
-
settings.onVisible.call(element);
|
20947
21236
|
}
|
20948
21237
|
else {
|
20949
21238
|
module.debug('Sidebar is already visible');
|
@@ -20955,7 +21244,7 @@ $.fn.sidebar = function(parameters) {
|
|
20955
21244
|
? callback
|
20956
21245
|
: function(){}
|
20957
21246
|
;
|
20958
|
-
if(module.is.visible() || module.is.animating()) {
|
21247
|
+
if((module.is.visible() || module.is.animating()) && settings.onHide.call(element) !== false) {
|
20959
21248
|
module.debug('Hiding sidebar', callback);
|
20960
21249
|
module.refreshSidebars();
|
20961
21250
|
module.pullPage(function() {
|
@@ -20963,7 +21252,6 @@ $.fn.sidebar = function(parameters) {
|
|
20963
21252
|
settings.onHidden.call(element);
|
20964
21253
|
});
|
20965
21254
|
settings.onChange.call(element);
|
20966
|
-
settings.onHide.call(element);
|
20967
21255
|
}
|
20968
21256
|
},
|
20969
21257
|
|
@@ -21581,7 +21869,7 @@ $.fn.sidebar.settings = {
|
|
21581
21869
|
})( jQuery, window, document );
|
21582
21870
|
|
21583
21871
|
/*!
|
21584
|
-
* # Fomantic-UI 2.9.0-beta.
|
21872
|
+
* # Fomantic-UI 2.9.0-beta.301+42e68bc - Sticky
|
21585
21873
|
* http://github.com/fomantic/Fomantic-UI/
|
21586
21874
|
*
|
21587
21875
|
*
|
@@ -21635,7 +21923,7 @@ $.fn.sticky = function(parameters) {
|
|
21635
21923
|
|
21636
21924
|
$module = $(this),
|
21637
21925
|
$window = $(window),
|
21638
|
-
$scroll = $(settings.scrollContext),
|
21926
|
+
$scroll = [window,document].indexOf(settings.scrollContext) < 0 ? $(document).find(settings.scrollContext) : $(settings.scrollContext),
|
21639
21927
|
$container,
|
21640
21928
|
$context,
|
21641
21929
|
|
@@ -21721,7 +22009,7 @@ $.fn.sticky = function(parameters) {
|
|
21721
22009
|
|
21722
22010
|
determineContainer: function() {
|
21723
22011
|
if(settings.container) {
|
21724
|
-
$container = $(settings.container);
|
22012
|
+
$container = [window,document].indexOf(settings.container) < 0 ? $(document).find(settings.container) : $(settings.container);
|
21725
22013
|
}
|
21726
22014
|
else {
|
21727
22015
|
$container = $module.offsetParent();
|
@@ -21730,7 +22018,7 @@ $.fn.sticky = function(parameters) {
|
|
21730
22018
|
|
21731
22019
|
determineContext: function() {
|
21732
22020
|
if(settings.context) {
|
21733
|
-
$context = $(settings.context);
|
22021
|
+
$context = [window,document].indexOf(settings.context) < 0 ? $(document).find(settings.context) : $(settings.context);
|
21734
22022
|
}
|
21735
22023
|
else {
|
21736
22024
|
$context = $container;
|
@@ -22520,7 +22808,7 @@ $.fn.sticky.settings = {
|
|
22520
22808
|
|
22521
22809
|
error : {
|
22522
22810
|
container : 'Sticky element must be inside a relative container',
|
22523
|
-
visible : 'Element is hidden, you must call refresh after element becomes visible. Use silent setting to
|
22811
|
+
visible : 'Element is hidden, you must call refresh after element becomes visible. Use silent setting to suppress this warning in production.',
|
22524
22812
|
method : 'The method you called is not defined.',
|
22525
22813
|
invalidContext : 'Context specified does not exist',
|
22526
22814
|
elementSize : 'Sticky element is larger than its container, cannot create sticky.'
|
@@ -22539,7 +22827,7 @@ $.fn.sticky.settings = {
|
|
22539
22827
|
})( jQuery, window, document );
|
22540
22828
|
|
22541
22829
|
/*!
|
22542
|
-
* # Fomantic-UI 2.9.0-beta.
|
22830
|
+
* # Fomantic-UI 2.9.0-beta.301+42e68bc - Tab
|
22543
22831
|
* http://github.com/fomantic/Fomantic-UI/
|
22544
22832
|
*
|
22545
22833
|
*
|
@@ -22640,10 +22928,18 @@ $.fn.tab = function(parameters) {
|
|
22640
22928
|
initializedHistory = true;
|
22641
22929
|
}
|
22642
22930
|
|
22643
|
-
|
22644
|
-
|
22645
|
-
|
22646
|
-
|
22931
|
+
var activeTab = module.determine.activeTab();
|
22932
|
+
if(settings.autoTabActivation && instance === undefined && activeTab == null) {
|
22933
|
+
activeTab = settings.autoTabActivation === true ? module.get.initialPath() : settings.autoTabActivation;
|
22934
|
+
module.debug('No active tab detected, setting tab active', activeTab);
|
22935
|
+
module.changeTab(activeTab);
|
22936
|
+
}
|
22937
|
+
if(activeTab != null && settings.history) {
|
22938
|
+
var autoUpdate = $.address.autoUpdate();
|
22939
|
+
$.address.autoUpdate(false);
|
22940
|
+
$.address.value(activeTab);
|
22941
|
+
$.address.autoUpdate(autoUpdate);
|
22942
|
+
}
|
22647
22943
|
|
22648
22944
|
module.instantiate();
|
22649
22945
|
},
|
@@ -22694,7 +22990,7 @@ $.fn.tab = function(parameters) {
|
|
22694
22990
|
module.verbose('Determined parent element for creating context', $context);
|
22695
22991
|
}
|
22696
22992
|
else if(settings.context) {
|
22697
|
-
$context = $(settings.context);
|
22993
|
+
$context = [window,document].indexOf(settings.context) < 0 ? $(document).find(settings.context) : $(settings.context);
|
22698
22994
|
module.verbose('Using selector for tab context', settings.context, $context);
|
22699
22995
|
}
|
22700
22996
|
else {
|
@@ -22743,6 +23039,7 @@ $.fn.tab = function(parameters) {
|
|
22743
23039
|
.history(true)
|
22744
23040
|
.state(settings.path)
|
22745
23041
|
;
|
23042
|
+
$(window).trigger('popstate');
|
22746
23043
|
}
|
22747
23044
|
else {
|
22748
23045
|
module.error(error.path);
|
@@ -22910,6 +23207,10 @@ $.fn.tab = function(parameters) {
|
|
22910
23207
|
module.verbose('Tab parameters found', nextPathArray);
|
22911
23208
|
}
|
22912
23209
|
}
|
23210
|
+
if (settings.onBeforeChange.call(element, currentPath) === false) {
|
23211
|
+
module.debug('onBeforeChange returned false, cancelling tab change', $tab);
|
23212
|
+
return false;
|
23213
|
+
}
|
22913
23214
|
if(isLastTab && remoteContent) {
|
22914
23215
|
if(!shouldIgnoreLoad) {
|
22915
23216
|
module.activate.navigation(currentPath);
|
@@ -22946,6 +23247,10 @@ $.fn.tab = function(parameters) {
|
|
22946
23247
|
// if anchor exists use parent tab
|
22947
23248
|
if($anchor && $anchor.length > 0 && currentPath) {
|
22948
23249
|
module.debug('Anchor link used, opening parent tab', $tab, $anchor);
|
23250
|
+
if (settings.onBeforeChange.call(element, currentPath) === false) {
|
23251
|
+
module.debug('onBeforeChange returned false, cancelling tab change', $tab);
|
23252
|
+
return false;
|
23253
|
+
}
|
22949
23254
|
if( !$tab.hasClass(className.active) ) {
|
22950
23255
|
setTimeout(function() {
|
22951
23256
|
module.scrollTo($anchor);
|
@@ -23499,6 +23804,7 @@ $.fn.tab.settings = {
|
|
23499
23804
|
onLoad : function(tabPath, parameterArray, historyEvent) {}, // called on every load
|
23500
23805
|
onVisible : function(tabPath, parameterArray, historyEvent) {}, // called every time tab visible
|
23501
23806
|
onRequest : function(tabPath, parameterArray, historyEvent) {}, // called ever time a tab beings loading remote content
|
23807
|
+
onBeforeChange: function(tabPath) {}, // called before a tab is about to be changed. Returning false will cancel the tab change
|
23502
23808
|
|
23503
23809
|
templates : {
|
23504
23810
|
determineTitle: function(tabArray) {} // returns page title for path
|
@@ -23541,7 +23847,7 @@ $.fn.tab.settings = {
|
|
23541
23847
|
})( jQuery, window, document );
|
23542
23848
|
|
23543
23849
|
/*!
|
23544
|
-
* # Fomantic-UI 2.9.0-beta.
|
23850
|
+
* # Fomantic-UI 2.9.0-beta.301+42e68bc - Toast
|
23545
23851
|
* http://github.com/fomantic/Fomantic-UI/
|
23546
23852
|
*
|
23547
23853
|
*
|
@@ -23603,7 +23909,7 @@ $.fn.toast = function(parameters) {
|
|
23603
23909
|
$animationObject,
|
23604
23910
|
$close,
|
23605
23911
|
$context = (settings.context)
|
23606
|
-
? $(settings.context)
|
23912
|
+
? ([window,document].indexOf(settings.context) < 0 ? $(document).find(settings.context) : $(settings.context))
|
23607
23913
|
: $('body'),
|
23608
23914
|
|
23609
23915
|
isToastComponent = $module.hasClass('toast') || $module.hasClass('message') || $module.hasClass('card'),
|
@@ -23611,12 +23917,14 @@ $.fn.toast = function(parameters) {
|
|
23611
23917
|
element = this,
|
23612
23918
|
instance = isToastComponent ? $module.data(moduleNamespace) : undefined,
|
23613
23919
|
|
23920
|
+
id,
|
23614
23921
|
module
|
23615
23922
|
;
|
23616
23923
|
module = {
|
23617
23924
|
|
23618
23925
|
initialize: function() {
|
23619
23926
|
module.verbose('Initializing element');
|
23927
|
+
module.create.id();
|
23620
23928
|
if (!module.has.container()) {
|
23621
23929
|
module.create.container();
|
23622
23930
|
}
|
@@ -23666,17 +23974,22 @@ $.fn.toast = function(parameters) {
|
|
23666
23974
|
},
|
23667
23975
|
|
23668
23976
|
show: function(callback) {
|
23669
|
-
callback = callback || function(){};
|
23670
|
-
module.debug('Showing toast');
|
23671
23977
|
if(settings.onShow.call($toastBox, element) === false) {
|
23672
23978
|
module.debug('onShow callback returned false, cancelling toast animation');
|
23673
23979
|
return;
|
23674
23980
|
}
|
23981
|
+
callback = callback || function(){};
|
23982
|
+
module.debug('Showing toast');
|
23675
23983
|
module.animate.show(callback);
|
23676
23984
|
},
|
23677
23985
|
|
23678
23986
|
close: function(callback) {
|
23987
|
+
if(settings.onHide.call($toastBox, element) === false) {
|
23988
|
+
module.debug('onHide callback returned false, cancelling toast animation');
|
23989
|
+
return;
|
23990
|
+
}
|
23679
23991
|
callback = callback || function(){};
|
23992
|
+
module.debug('Closing toast');
|
23680
23993
|
module.remove.visible();
|
23681
23994
|
module.unbind.events();
|
23682
23995
|
module.animate.close(callback);
|
@@ -23686,14 +23999,18 @@ $.fn.toast = function(parameters) {
|
|
23686
23999
|
create: {
|
23687
24000
|
container: function() {
|
23688
24001
|
module.verbose('Creating container');
|
23689
|
-
$context.append($('<div/>',{class: settings.position + ' ' + className.container + ' ' +(settings.horizontal ? className.horizontal : '')}));
|
24002
|
+
$context.append($('<div/>',{class: settings.position + ' ' + className.container + ' ' +(settings.horizontal ? className.horizontal : '') + ' ' + (settings.context && settings.context !== 'body' ? className.absolute : '')}));
|
24003
|
+
},
|
24004
|
+
id: function() {
|
24005
|
+
id = (Math.random().toString(16) + '000000000').slice(2, 10);
|
24006
|
+
module.verbose('Creating unique id for element', id);
|
23690
24007
|
},
|
23691
24008
|
toast: function() {
|
23692
24009
|
$toastBox = $('<div/>', {class: className.box});
|
23693
24010
|
var iconClass = module.get.iconClass();
|
23694
24011
|
if (!isToastComponent) {
|
23695
24012
|
module.verbose('Creating toast');
|
23696
|
-
$toast = $('<div/>');
|
24013
|
+
$toast = $('<div/>', {role: 'alert'});
|
23697
24014
|
var $content = $('<div/>', {class: className.content});
|
23698
24015
|
if (iconClass !== '') {
|
23699
24016
|
$toast.append($('<i/>', {class: iconClass + ' ' + className.icon}));
|
@@ -23706,13 +24023,21 @@ $.fn.toast = function(parameters) {
|
|
23706
24023
|
}));
|
23707
24024
|
}
|
23708
24025
|
if (settings.title !== '') {
|
24026
|
+
var titleId = '_' + module.get.id() + 'title';
|
24027
|
+
$toast.attr('aria-labelledby', titleId);
|
23709
24028
|
$content.append($('<div/>', {
|
23710
24029
|
class: className.title,
|
23711
|
-
|
24030
|
+
id: titleId,
|
24031
|
+
html: module.helpers.escape(settings.title, settings.preserveHTML)
|
23712
24032
|
}));
|
23713
24033
|
}
|
23714
|
-
|
23715
|
-
$
|
24034
|
+
var descId = '_' + module.get.id() + 'desc';
|
24035
|
+
$toast.attr('aria-describedby', descId);
|
24036
|
+
$content.append($('<div/>', {
|
24037
|
+
class: className.message,
|
24038
|
+
id: descId,
|
24039
|
+
html: module.helpers.escape(settings.message, settings.preserveHTML)
|
24040
|
+
}));
|
23716
24041
|
|
23717
24042
|
$toast
|
23718
24043
|
.addClass(settings.class + ' ' + className.toast)
|
@@ -23720,7 +24045,7 @@ $.fn.toast = function(parameters) {
|
|
23720
24045
|
;
|
23721
24046
|
$toast.css('opacity', settings.opacity);
|
23722
24047
|
if (settings.closeIcon) {
|
23723
|
-
$close = $('<i/>', {class: className.close + ' ' + (typeof settings.closeIcon === 'string' ? settings.closeIcon : '')});
|
24048
|
+
$close = $('<i/>', {class: className.close + ' ' + (typeof settings.closeIcon === 'string' ? settings.closeIcon : ''), role: 'button', tabindex: 0, 'aria-label': settings.text.close});
|
23724
24049
|
if($close.hasClass(className.left)) {
|
23725
24050
|
$toast.prepend($close);
|
23726
24051
|
} else {
|
@@ -23763,15 +24088,17 @@ $.fn.toast = function(parameters) {
|
|
23763
24088
|
}
|
23764
24089
|
}
|
23765
24090
|
settings.actions.forEach(function (el) {
|
23766
|
-
var icon = el[fields.icon] ? '<i class="' + module.helpers.deQuote(el[fields.icon]) + ' icon"></i>' : '',
|
24091
|
+
var icon = el[fields.icon] ? '<i '+(el[fields.text] ? 'aria-hidden="true"' : '')+' class="' + module.helpers.deQuote(el[fields.icon]) + ' icon"></i>' : '',
|
23767
24092
|
text = module.helpers.escape(el[fields.text] || '', settings.preserveHTML),
|
23768
24093
|
cls = module.helpers.deQuote(el[fields.class] || ''),
|
23769
24094
|
click = el[fields.click] && $.isFunction(el[fields.click]) ? el[fields.click] : function () {};
|
23770
24095
|
$actions.append($('<button/>', {
|
23771
24096
|
html: icon + text,
|
24097
|
+
'aria-label': (el[fields.text] || el[fields.icon] || '').replace(/<[^>]+(>|$)/g,''),
|
23772
24098
|
class: className.button + ' ' + cls,
|
23773
24099
|
click: function () {
|
23774
|
-
|
24100
|
+
var button = $(this);
|
24101
|
+
if (button.is(selector.approve) || button.is(selector.deny) || click.call(element, $module) === false) {
|
23775
24102
|
return;
|
23776
24103
|
}
|
23777
24104
|
module.close();
|
@@ -23871,13 +24198,12 @@ $.fn.toast = function(parameters) {
|
|
23871
24198
|
bind: {
|
23872
24199
|
events: function() {
|
23873
24200
|
module.debug('Binding events to toast');
|
23874
|
-
if(settings.
|
23875
|
-
(
|
23876
|
-
.on('click' + eventNamespace, module.event.click)
|
23877
|
-
;
|
24201
|
+
if(settings.closeIcon) {
|
24202
|
+
$close.on('click' + eventNamespace, module.event.close);
|
23878
24203
|
}
|
24204
|
+
$toast.on('click' + eventNamespace, module.event.click);
|
23879
24205
|
if($animationObject) {
|
23880
|
-
$animationObject.on('animationend' + eventNamespace, module.close);
|
24206
|
+
$animationObject.on('animationend' + eventNamespace, module.event.close);
|
23881
24207
|
}
|
23882
24208
|
$toastBox
|
23883
24209
|
.on('click' + eventNamespace, selector.approve, module.event.approve)
|
@@ -23889,11 +24215,10 @@ $.fn.toast = function(parameters) {
|
|
23889
24215
|
unbind: {
|
23890
24216
|
events: function() {
|
23891
24217
|
module.debug('Unbinding events to toast');
|
23892
|
-
if(settings.
|
23893
|
-
|
23894
|
-
.off('click' + eventNamespace)
|
23895
|
-
;
|
24218
|
+
if(settings.closeIcon) {
|
24219
|
+
$close.off('click' + eventNamespace);
|
23896
24220
|
}
|
24221
|
+
$toast.off('click' + eventNamespace);
|
23897
24222
|
if($animationObject) {
|
23898
24223
|
$animationObject.off('animationend' + eventNamespace);
|
23899
24224
|
}
|
@@ -23925,11 +24250,6 @@ $.fn.toast = function(parameters) {
|
|
23925
24250
|
},
|
23926
24251
|
close: function(callback) {
|
23927
24252
|
callback = $.isFunction(callback) ? callback : function(){};
|
23928
|
-
module.debug('Closing toast');
|
23929
|
-
if(settings.onHide.call($toastBox, element) === false) {
|
23930
|
-
module.debug('onHide callback returned false, cancelling toast animation');
|
23931
|
-
return;
|
23932
|
-
}
|
23933
24253
|
if(settings.transition && $.fn.transition !== undefined && $module.transition('is supported')) {
|
23934
24254
|
$toastBox
|
23935
24255
|
.transition({
|
@@ -23985,7 +24305,7 @@ $.fn.toast = function(parameters) {
|
|
23985
24305
|
has: {
|
23986
24306
|
container: function() {
|
23987
24307
|
module.verbose('Determining if there is already a container');
|
23988
|
-
return
|
24308
|
+
return module.get.containers().length > 0;
|
23989
24309
|
},
|
23990
24310
|
toast: function(){
|
23991
24311
|
return !!module.get.toast();
|
@@ -23999,8 +24319,14 @@ $.fn.toast = function(parameters) {
|
|
23999
24319
|
},
|
24000
24320
|
|
24001
24321
|
get: {
|
24322
|
+
id: function() {
|
24323
|
+
return id;
|
24324
|
+
},
|
24325
|
+
containers: function() {
|
24326
|
+
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)+')'));
|
24327
|
+
},
|
24002
24328
|
container: function() {
|
24003
|
-
return
|
24329
|
+
return module.get.containers()[0];
|
24004
24330
|
},
|
24005
24331
|
toastBox: function() {
|
24006
24332
|
return $toastBox || null;
|
@@ -24032,9 +24358,15 @@ $.fn.toast = function(parameters) {
|
|
24032
24358
|
},
|
24033
24359
|
|
24034
24360
|
event: {
|
24361
|
+
close: function(){
|
24362
|
+
module.close();
|
24363
|
+
},
|
24035
24364
|
click: function(event) {
|
24036
|
-
if($(event.target).closest(
|
24037
|
-
settings.onClick.call($toastBox, element)
|
24365
|
+
if($(event.target).closest(selector.clickable).length === 0) {
|
24366
|
+
if(settings.onClick.call($toastBox, element) === false || !settings.closeOnClick) {
|
24367
|
+
module.verbose('Click callback returned false or close denied by setting cancelling close');
|
24368
|
+
return;
|
24369
|
+
}
|
24038
24370
|
module.close();
|
24039
24371
|
}
|
24040
24372
|
},
|
@@ -24057,7 +24389,7 @@ $.fn.toast = function(parameters) {
|
|
24057
24389
|
helpers: {
|
24058
24390
|
toClass: function(selector) {
|
24059
24391
|
var
|
24060
|
-
classes = selector.split(
|
24392
|
+
classes = selector.trim().split(/\s+/),
|
24061
24393
|
result = ''
|
24062
24394
|
;
|
24063
24395
|
|
@@ -24347,6 +24679,7 @@ $.fn.toast.settings = {
|
|
24347
24679
|
|
24348
24680
|
className : {
|
24349
24681
|
container : 'ui toast-container',
|
24682
|
+
absolute : 'absolute',
|
24350
24683
|
box : 'floating toast-box',
|
24351
24684
|
progress : 'ui attached active progress',
|
24352
24685
|
toast : 'ui toast',
|
@@ -24375,6 +24708,10 @@ $.fn.toast.settings = {
|
|
24375
24708
|
unclickable : 'unclickable'
|
24376
24709
|
},
|
24377
24710
|
|
24711
|
+
text: {
|
24712
|
+
close : 'Close'
|
24713
|
+
},
|
24714
|
+
|
24378
24715
|
icons : {
|
24379
24716
|
info : 'info',
|
24380
24717
|
success : 'checkmark',
|
@@ -24391,6 +24728,7 @@ $.fn.toast.settings = {
|
|
24391
24728
|
image : '> img.image, > .image > img',
|
24392
24729
|
icon : '> i.icon',
|
24393
24730
|
input : 'input:not([type="hidden"]), textarea, select, button, .ui.button, ui.dropdown',
|
24731
|
+
clickable : 'a, details, .ui.accordion',
|
24394
24732
|
approve : '.actions .positive, .actions .approve, .actions .ok',
|
24395
24733
|
deny : '.actions .negative, .actions .deny, .actions .cancel'
|
24396
24734
|
},
|
@@ -24434,7 +24772,7 @@ $.extend( $.easing, {
|
|
24434
24772
|
})( jQuery, window, document );
|
24435
24773
|
|
24436
24774
|
/*!
|
24437
|
-
* # Fomantic-UI 2.9.0-beta.
|
24775
|
+
* # Fomantic-UI 2.9.0-beta.301+42e68bc - Transition
|
24438
24776
|
* http://github.com/fomantic/Fomantic-UI/
|
24439
24777
|
*
|
24440
24778
|
*
|
@@ -25206,6 +25544,10 @@ $.fn.transition = function() {
|
|
25206
25544
|
},
|
25207
25545
|
|
25208
25546
|
hide: function() {
|
25547
|
+
if(settings.onHide.call(element) === false) {
|
25548
|
+
module.verbose('Hide callback returned false cancelling hide');
|
25549
|
+
return false;
|
25550
|
+
}
|
25209
25551
|
module.verbose('Hiding element');
|
25210
25552
|
if( module.is.animating() ) {
|
25211
25553
|
module.reset();
|
@@ -25213,35 +25555,32 @@ $.fn.transition = function() {
|
|
25213
25555
|
element.blur(); // IE will trigger focus change if element is not blurred before hiding
|
25214
25556
|
module.remove.display();
|
25215
25557
|
module.remove.visible();
|
25216
|
-
|
25217
|
-
settings.onBeforeHide.call(element,function(){
|
25218
|
-
module.hideNow();
|
25219
|
-
});
|
25220
|
-
} else {
|
25221
|
-
module.hideNow();
|
25222
|
-
}
|
25223
|
-
|
25558
|
+
settings.onBeforeHide.call(element, module.hideNow);
|
25224
25559
|
},
|
25225
25560
|
|
25226
25561
|
hideNow: function() {
|
25227
25562
|
module.set.hidden();
|
25228
25563
|
module.force.hidden();
|
25229
|
-
settings.
|
25564
|
+
settings.onHidden.call(element);
|
25230
25565
|
settings.onComplete.call(element);
|
25231
25566
|
// module.repaint();
|
25232
25567
|
},
|
25233
25568
|
|
25234
25569
|
show: function(display) {
|
25235
|
-
module.
|
25236
|
-
|
25570
|
+
if(module.force.visible() && settings.onShow.call(element) !== false) {
|
25571
|
+
module.verbose('Showing element', display);
|
25237
25572
|
module.remove.hidden();
|
25238
|
-
|
25239
|
-
settings.onShow.call(element);
|
25240
|
-
settings.onComplete.call(element);
|
25241
|
-
// module.repaint();
|
25573
|
+
settings.onBeforeShow.call(element, module.showNow);
|
25242
25574
|
}
|
25243
25575
|
},
|
25244
25576
|
|
25577
|
+
showNow: function(){
|
25578
|
+
module.set.visible();
|
25579
|
+
settings.onVisible.call(element);
|
25580
|
+
settings.onComplete.call(element);
|
25581
|
+
// module.repaint();
|
25582
|
+
},
|
25583
|
+
|
25245
25584
|
toggle: function() {
|
25246
25585
|
if( module.is.visible() ) {
|
25247
25586
|
module.hide();
|
@@ -25490,7 +25829,11 @@ $.fn.transition.settings = {
|
|
25490
25829
|
onStart : function() {},
|
25491
25830
|
onComplete : function() {},
|
25492
25831
|
onShow : function() {},
|
25832
|
+
onBeforeShow : function(callback) {callback.call(this)},
|
25833
|
+
onVisible : function() {},
|
25493
25834
|
onHide : function() {},
|
25835
|
+
onHidden : function() {},
|
25836
|
+
onBeforeHide : function(callback) {callback.call(this)},
|
25494
25837
|
|
25495
25838
|
// whether timeout should be used to ensure callback fires in cases animationend does not
|
25496
25839
|
useFailSafe : true,
|
@@ -25532,7 +25875,7 @@ $.fn.transition.settings = {
|
|
25532
25875
|
|
25533
25876
|
// possible errors
|
25534
25877
|
error: {
|
25535
|
-
noAnimation : 'Element is no longer attached to DOM. Unable to animate. Use silent setting to
|
25878
|
+
noAnimation : 'Element is no longer attached to DOM. Unable to animate. Use silent setting to suppress this warning in production.',
|
25536
25879
|
repeated : 'That animation is already occurring, cancelling repeated animation',
|
25537
25880
|
method : 'The method you called is not defined',
|
25538
25881
|
support : 'This browser does not support CSS animations'
|
@@ -25544,7 +25887,7 @@ $.fn.transition.settings = {
|
|
25544
25887
|
})( jQuery, window, document );
|
25545
25888
|
|
25546
25889
|
/*!
|
25547
|
-
* # Fomantic-UI 2.9.0-beta.
|
25890
|
+
* # Fomantic-UI 2.9.0-beta.301+42e68bc - API
|
25548
25891
|
* http://github.com/fomantic/Fomantic-UI/
|
25549
25892
|
*
|
25550
25893
|
*
|
@@ -25610,7 +25953,7 @@ $.api = $.fn.api = function(parameters) {
|
|
25610
25953
|
|
25611
25954
|
// context used for state
|
25612
25955
|
$context = (settings.stateContext)
|
25613
|
-
? $(settings.stateContext)
|
25956
|
+
? ([window,document].indexOf(settings.stateContext) < 0 ? $(document).find(settings.stateContext) : $(settings.stateContext))
|
25614
25957
|
: $module,
|
25615
25958
|
|
25616
25959
|
// request details
|
@@ -25619,6 +25962,7 @@ $.api = $.fn.api = function(parameters) {
|
|
25619
25962
|
url,
|
25620
25963
|
data,
|
25621
25964
|
requestStartTime,
|
25965
|
+
originalData,
|
25622
25966
|
|
25623
25967
|
// standard module
|
25624
25968
|
element = this,
|
@@ -25631,6 +25975,7 @@ $.api = $.fn.api = function(parameters) {
|
|
25631
25975
|
|
25632
25976
|
initialize: function() {
|
25633
25977
|
if(!methodInvoked) {
|
25978
|
+
originalData = settings.data;
|
25634
25979
|
module.bind.events();
|
25635
25980
|
}
|
25636
25981
|
module.instantiate();
|
@@ -25677,7 +26022,7 @@ $.api = $.fn.api = function(parameters) {
|
|
25677
26022
|
response = JSON.parse(response);
|
25678
26023
|
}
|
25679
26024
|
catch(e) {
|
25680
|
-
//
|
26025
|
+
// isn't json string
|
25681
26026
|
}
|
25682
26027
|
}
|
25683
26028
|
return response;
|
@@ -25693,8 +26038,8 @@ $.api = $.fn.api = function(parameters) {
|
|
25693
26038
|
module.error(error.noStorage);
|
25694
26039
|
return;
|
25695
26040
|
}
|
25696
|
-
response = sessionStorage.getItem(url);
|
25697
|
-
module.debug('Using cached response', url, response);
|
26041
|
+
response = sessionStorage.getItem(url + module.get.normalizedData());
|
26042
|
+
module.debug('Using cached response', url, settings.data, response);
|
25698
26043
|
response = module.decode.json(response);
|
25699
26044
|
return response;
|
25700
26045
|
}
|
@@ -25712,8 +26057,8 @@ $.api = $.fn.api = function(parameters) {
|
|
25712
26057
|
if( $.isPlainObject(response) ) {
|
25713
26058
|
response = JSON.stringify(response);
|
25714
26059
|
}
|
25715
|
-
sessionStorage.setItem(url, response);
|
25716
|
-
module.verbose('Storing cached response for url', url, response);
|
26060
|
+
sessionStorage.setItem(url + module.get.normalizedData(), response);
|
26061
|
+
module.verbose('Storing cached response for url', url, settings.data, response);
|
25717
26062
|
}
|
25718
26063
|
},
|
25719
26064
|
|
@@ -25742,7 +26087,7 @@ $.api = $.fn.api = function(parameters) {
|
|
25742
26087
|
|
25743
26088
|
// Add form content
|
25744
26089
|
if(settings.serializeForm) {
|
25745
|
-
settings.data = module.add.formData(settings.data);
|
26090
|
+
settings.data = module.add.formData(originalData || settings.data);
|
25746
26091
|
}
|
25747
26092
|
|
25748
26093
|
// call beforesend and get any settings changes
|
@@ -25879,10 +26224,6 @@ $.api = $.fn.api = function(parameters) {
|
|
25879
26224
|
cancelled: function() {
|
25880
26225
|
return (module.cancelled || false);
|
25881
26226
|
},
|
25882
|
-
succesful: function() {
|
25883
|
-
module.verbose('This behavior will be deleted due to typo. Use "was successful" instead.');
|
25884
|
-
return module.was.successful();
|
25885
|
-
},
|
25886
26227
|
successful: function() {
|
25887
26228
|
return (module.request && module.request.state() == 'resolved');
|
25888
26229
|
},
|
@@ -25910,8 +26251,8 @@ $.api = $.fn.api = function(parameters) {
|
|
25910
26251
|
var
|
25911
26252
|
// allow legacy {$var} style
|
25912
26253
|
variable = (templatedString.indexOf('$') !== -1)
|
25913
|
-
? templatedString.
|
25914
|
-
: templatedString.
|
26254
|
+
? templatedString.slice(2, -1)
|
26255
|
+
: templatedString.slice(1, -1),
|
25915
26256
|
value = ($.isPlainObject(urlData) && urlData[variable] !== undefined)
|
25916
26257
|
? urlData[variable]
|
25917
26258
|
: ($module.data(variable) !== undefined)
|
@@ -25942,8 +26283,8 @@ $.api = $.fn.api = function(parameters) {
|
|
25942
26283
|
var
|
25943
26284
|
// allow legacy {/$var} style
|
25944
26285
|
variable = (templatedString.indexOf('$') !== -1)
|
25945
|
-
? templatedString.
|
25946
|
-
: templatedString.
|
26286
|
+
? templatedString.slice(3, -1)
|
26287
|
+
: templatedString.slice(2, -1),
|
25947
26288
|
value = ($.isPlainObject(urlData) && urlData[variable] !== undefined)
|
25948
26289
|
? urlData[variable]
|
25949
26290
|
: ($module.data(variable) !== undefined)
|
@@ -25974,24 +26315,76 @@ $.api = $.fn.api = function(parameters) {
|
|
25974
26315
|
},
|
25975
26316
|
formData: function(data) {
|
25976
26317
|
var
|
25977
|
-
|
25978
|
-
|
25979
|
-
|
25980
|
-
: $form.serialize(),
|
25981
|
-
hasOtherData
|
26318
|
+
formData = {},
|
26319
|
+
hasOtherData,
|
26320
|
+
useFormDataApi = settings.serializeForm === 'formdata'
|
25982
26321
|
;
|
25983
|
-
data = data || settings.data;
|
26322
|
+
data = data || originalData || settings.data;
|
25984
26323
|
hasOtherData = $.isPlainObject(data);
|
25985
26324
|
|
26325
|
+
if (useFormDataApi) {
|
26326
|
+
formData = new FormData($form[0]);
|
26327
|
+
settings.processData = typeof settings.processData !== 'undefined' ? settings.processData : false;
|
26328
|
+
settings.contentType = typeof settings.contentType !== 'undefined' ? settings.contentType : false;
|
26329
|
+
} else {
|
26330
|
+
var formArray = $form.serializeArray(),
|
26331
|
+
pushes = {},
|
26332
|
+
pushValues= {},
|
26333
|
+
build = function(base, key, value) {
|
26334
|
+
base[key] = value;
|
26335
|
+
return base;
|
26336
|
+
}
|
26337
|
+
;
|
26338
|
+
// add files
|
26339
|
+
$.each($('input[type="file"]',$form), function(i, tag) {
|
26340
|
+
$.each($(tag)[0].files, function(j, file) {
|
26341
|
+
formArray.push({name:tag.name, value: file});
|
26342
|
+
});
|
26343
|
+
});
|
26344
|
+
$.each(formArray, function(i, el) {
|
26345
|
+
if (!settings.regExp.validate.test(el.name)) return;
|
26346
|
+
var isCheckbox = $('[name="' + el.name + '"]', $form).attr('type') === 'checkbox',
|
26347
|
+
floatValue = parseFloat(el.value),
|
26348
|
+
value = (isCheckbox && el.value === 'on') || el.value === 'true' || (String(floatValue) === el.value ? floatValue : (el.value === 'false' ? false : el.value)),
|
26349
|
+
nameKeys = el.name.match(settings.regExp.key) || [], k, pushKey= el.name.replace(/\[\]$/,'')
|
26350
|
+
;
|
26351
|
+
if(!(pushKey in pushes)) {
|
26352
|
+
pushes[pushKey] = 0;
|
26353
|
+
pushValues[pushKey] = value;
|
26354
|
+
} else if (Array.isArray(pushValues[pushKey])) {
|
26355
|
+
pushValues[pushKey].push(value);
|
26356
|
+
} else {
|
26357
|
+
pushValues[pushKey] = [pushValues[pushKey] , value];
|
26358
|
+
}
|
26359
|
+
value = pushValues[pushKey];
|
26360
|
+
|
26361
|
+
while ((k = nameKeys.pop()) !== undefined) {
|
26362
|
+
// foo[]
|
26363
|
+
if (k == '' && !Array.isArray(value)){
|
26364
|
+
value = build([], pushes[pushKey]++, value);
|
26365
|
+
}
|
26366
|
+
// foo[n]
|
26367
|
+
else if (settings.regExp.fixed.test(k)) {
|
26368
|
+
value = build([], k, value);
|
26369
|
+
}
|
26370
|
+
// foo; foo[bar]
|
26371
|
+
else if (settings.regExp.named.test(k)) {
|
26372
|
+
value = build({}, k, value);
|
26373
|
+
}
|
26374
|
+
}
|
26375
|
+
formData = $.extend(true, formData, value);
|
26376
|
+
});
|
26377
|
+
}
|
26378
|
+
|
25986
26379
|
if(hasOtherData) {
|
25987
|
-
|
25988
|
-
|
25989
|
-
|
25990
|
-
|
25991
|
-
|
25992
|
-
module.error(error.missingSerialize);
|
25993
|
-
module.debug('Cant extend data. Replacing data with form data', data, formData);
|
26380
|
+
module.debug('Extending existing data with form data', data, formData);
|
26381
|
+
if(useFormDataApi) {
|
26382
|
+
$.each(Object.keys(data),function(i, el){
|
26383
|
+
formData.append(el, data[el]);
|
26384
|
+
});
|
25994
26385
|
data = formData;
|
26386
|
+
} else {
|
26387
|
+
data = $.extend(true, {}, data, formData);
|
25995
26388
|
}
|
25996
26389
|
}
|
25997
26390
|
else {
|
@@ -26243,6 +26636,9 @@ $.api = $.fn.api = function(parameters) {
|
|
26243
26636
|
},
|
26244
26637
|
|
26245
26638
|
get: {
|
26639
|
+
normalizedData: function(){
|
26640
|
+
return typeof settings.data === "string" ? settings.data : JSON.stringify(settings.data, Object.keys(settings.data).sort());
|
26641
|
+
},
|
26246
26642
|
responseFromXHR: function(xhr) {
|
26247
26643
|
return $.isPlainObject(xhr)
|
26248
26644
|
? (module.is.expectingJSON())
|
@@ -26628,6 +27024,8 @@ $.api.settings = {
|
|
26628
27024
|
defaultData : true,
|
26629
27025
|
|
26630
27026
|
// whether to serialize closest form
|
27027
|
+
// use true to convert complex named keys like a[b][1][c][] into a nested object
|
27028
|
+
// use 'formdata' for formdata web api
|
26631
27029
|
serializeForm : false,
|
26632
27030
|
|
26633
27031
|
// how long to wait before request should occur
|
@@ -26650,7 +27048,7 @@ $.api.settings = {
|
|
26650
27048
|
responseAsync : false,
|
26651
27049
|
|
26652
27050
|
// whether onResponse should work with response value without force converting into an object
|
26653
|
-
rawResponse :
|
27051
|
+
rawResponse : true,
|
26654
27052
|
|
26655
27053
|
// callbacks before request
|
26656
27054
|
beforeSend : function(settings) { return settings; },
|
@@ -26686,7 +27084,6 @@ $.api.settings = {
|
|
26686
27084
|
legacyParameters : 'You are using legacy API success callback names',
|
26687
27085
|
method : 'The method you called is not defined',
|
26688
27086
|
missingAction : 'API action used but no url was defined',
|
26689
|
-
missingSerialize : 'jquery-serialize-object is required to add form data to an existing data object',
|
26690
27087
|
missingURL : 'No URL specified for api event',
|
26691
27088
|
noReturnedValue : 'The beforeSend callback must return a settings object, beforeSend ignored.',
|
26692
27089
|
noStorage : 'Caching responses locally requires session storage',
|
@@ -26699,6 +27096,11 @@ $.api.settings = {
|
|
26699
27096
|
regExp : {
|
26700
27097
|
required : /\{\$*[A-z0-9]+\}/g,
|
26701
27098
|
optional : /\{\/\$*[A-z0-9]+\}/g,
|
27099
|
+
validate: /^[a-z_][a-z0-9_-]*(?:\[[a-z0-9_-]*\])*$/i,
|
27100
|
+
key: /[a-z0-9_-]+|(?=\[\])/gi,
|
27101
|
+
push: /^$/,
|
27102
|
+
fixed: /^\d+$/,
|
27103
|
+
named: /^[a-z0-9_-]+$/i
|
26702
27104
|
},
|
26703
27105
|
|
26704
27106
|
className: {
|
@@ -26722,7 +27124,7 @@ $.api.settings = {
|
|
26722
27124
|
})( jQuery, window, document );
|
26723
27125
|
|
26724
27126
|
/*!
|
26725
|
-
* # Fomantic-UI 2.9.0-beta.
|
27127
|
+
* # Fomantic-UI 2.9.0-beta.301+42e68bc - State
|
26726
27128
|
* http://github.com/fomantic/Fomantic-UI/
|
26727
27129
|
*
|
26728
27130
|
*
|
@@ -26797,7 +27199,7 @@ $.fn.state = function(parameters) {
|
|
26797
27199
|
|
26798
27200
|
// bind events with delegated events
|
26799
27201
|
if(settings.context && moduleSelector !== '') {
|
26800
|
-
$(settings.context)
|
27202
|
+
([window,document].indexOf(settings.context) < 0 ? $(document).find(settings.context) : $(settings.context))
|
26801
27203
|
.on(moduleSelector, 'mouseenter' + eventNamespace, module.change.text)
|
26802
27204
|
.on(moduleSelector, 'mouseleave' + eventNamespace, module.reset.text)
|
26803
27205
|
.on(moduleSelector, 'click' + eventNamespace, module.toggle.state)
|
@@ -27434,7 +27836,7 @@ $.fn.state.settings = {
|
|
27434
27836
|
})( jQuery, window, document );
|
27435
27837
|
|
27436
27838
|
/*!
|
27437
|
-
* # Fomantic-UI 2.9.0-beta.
|
27839
|
+
* # Fomantic-UI 2.9.0-beta.301+42e68bc - Visibility
|
27438
27840
|
* http://github.com/fomantic/Fomantic-UI/
|
27439
27841
|
*
|
27440
27842
|
*
|
@@ -27493,7 +27895,7 @@ $.fn.visibility = function(parameters) {
|
|
27493
27895
|
$window = $(window),
|
27494
27896
|
|
27495
27897
|
$module = $(this),
|
27496
|
-
$context = $(settings.context),
|
27898
|
+
$context = [window,document].indexOf(settings.context) < 0 ? $(document).find(settings.context) : $(settings.context),
|
27497
27899
|
|
27498
27900
|
$placeholder,
|
27499
27901
|
|
@@ -28672,7 +29074,7 @@ $.fn.visibility.settings = {
|
|
28672
29074
|
// callback should only occur one time
|
28673
29075
|
once : true,
|
28674
29076
|
|
28675
|
-
// callback should fire continuously
|
29077
|
+
// callback should fire continuously when evaluates to true
|
28676
29078
|
continuous : false,
|
28677
29079
|
|
28678
29080
|
// offset to use with scroll top
|