rbbt-rest 1.8.126 → 1.8.129
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/rbbt/rest/common/cache.rb +1 -0
- data/lib/rbbt/rest/file_server.rb +1 -2
- data/lib/rbbt/rest/workflow/jobs.rb +1 -0
- data/share/views/public/plugins/semantic-ui/README.md +8 -6
- data/share/views/public/plugins/semantic-ui/RELEASE-NOTES.md +0 -216
- data/share/views/public/plugins/semantic-ui/dist/components/accordion.css +2 -3
- data/share/views/public/plugins/semantic-ui/dist/components/accordion.js +4 -7
- data/share/views/public/plugins/semantic-ui/dist/components/accordion.min.css +2 -2
- data/share/views/public/plugins/semantic-ui/dist/components/accordion.min.js +1 -1
- data/share/views/public/plugins/semantic-ui/dist/components/ad.css +1 -1
- data/share/views/public/plugins/semantic-ui/dist/components/ad.min.css +1 -1
- data/share/views/public/plugins/semantic-ui/dist/components/api.js +2 -2
- data/share/views/public/plugins/semantic-ui/dist/components/api.min.js +1 -1
- data/share/views/public/plugins/semantic-ui/dist/components/breadcrumb.css +1 -1
- data/share/views/public/plugins/semantic-ui/dist/components/breadcrumb.min.css +1 -1
- data/share/views/public/plugins/semantic-ui/dist/components/button.css +245 -634
- data/share/views/public/plugins/semantic-ui/dist/components/button.min.css +2 -2
- data/share/views/public/plugins/semantic-ui/dist/components/card.css +37 -70
- data/share/views/public/plugins/semantic-ui/dist/components/card.min.css +2 -2
- data/share/views/public/plugins/semantic-ui/dist/components/checkbox.css +12 -19
- data/share/views/public/plugins/semantic-ui/dist/components/checkbox.js +2 -2
- data/share/views/public/plugins/semantic-ui/dist/components/checkbox.min.css +2 -2
- data/share/views/public/plugins/semantic-ui/dist/components/checkbox.min.js +1 -1
- data/share/views/public/plugins/semantic-ui/dist/components/colorize.js +274 -0
- data/share/views/public/plugins/semantic-ui/dist/components/colorize.min.js +11 -0
- data/share/views/public/plugins/semantic-ui/dist/components/comment.css +2 -3
- data/share/views/public/plugins/semantic-ui/dist/components/comment.min.css +2 -2
- data/share/views/public/plugins/semantic-ui/dist/components/container.css +1 -1
- data/share/views/public/plugins/semantic-ui/dist/components/container.min.css +1 -1
- data/share/views/public/plugins/semantic-ui/dist/components/dimmer.css +9 -48
- data/share/views/public/plugins/semantic-ui/dist/components/dimmer.js +4 -29
- data/share/views/public/plugins/semantic-ui/dist/components/dimmer.min.css +2 -2
- data/share/views/public/plugins/semantic-ui/dist/components/dimmer.min.js +1 -1
- data/share/views/public/plugins/semantic-ui/dist/components/divider.css +1 -1
- data/share/views/public/plugins/semantic-ui/dist/components/divider.min.css +2 -2
- data/share/views/public/plugins/semantic-ui/dist/components/dropdown.css +48 -90
- data/share/views/public/plugins/semantic-ui/dist/components/dropdown.js +23 -99
- data/share/views/public/plugins/semantic-ui/dist/components/dropdown.min.css +2 -2
- data/share/views/public/plugins/semantic-ui/dist/components/dropdown.min.js +2 -1
- data/share/views/public/plugins/semantic-ui/dist/components/embed.css +1 -1
- data/share/views/public/plugins/semantic-ui/dist/components/embed.js +1 -11
- data/share/views/public/plugins/semantic-ui/dist/components/embed.min.css +1 -1
- data/share/views/public/plugins/semantic-ui/dist/components/embed.min.js +1 -1
- data/share/views/public/plugins/semantic-ui/dist/components/feed.css +4 -3
- data/share/views/public/plugins/semantic-ui/dist/components/feed.min.css +2 -2
- data/share/views/public/plugins/semantic-ui/dist/components/flag.css +1 -6
- data/share/views/public/plugins/semantic-ui/dist/components/flag.min.css +2 -2
- data/share/views/public/plugins/semantic-ui/dist/components/form.css +16 -29
- data/share/views/public/plugins/semantic-ui/dist/components/form.js +14 -14
- data/share/views/public/plugins/semantic-ui/dist/components/form.min.css +2 -2
- data/share/views/public/plugins/semantic-ui/dist/components/form.min.js +1 -1
- data/share/views/public/plugins/semantic-ui/dist/components/grid.css +52 -89
- data/share/views/public/plugins/semantic-ui/dist/components/grid.min.css +2 -2
- data/share/views/public/plugins/semantic-ui/dist/components/header.css +5 -11
- data/share/views/public/plugins/semantic-ui/dist/components/header.min.css +2 -2
- data/share/views/public/plugins/semantic-ui/dist/components/icon.css +1855 -3345
- data/share/views/public/plugins/semantic-ui/dist/components/icon.min.css +2 -2
- data/share/views/public/plugins/semantic-ui/dist/components/image.css +3 -7
- data/share/views/public/plugins/semantic-ui/dist/components/image.min.css +2 -2
- data/share/views/public/plugins/semantic-ui/dist/components/input.css +42 -50
- data/share/views/public/plugins/semantic-ui/dist/components/input.min.css +2 -2
- data/share/views/public/plugins/semantic-ui/dist/components/item.css +9 -10
- data/share/views/public/plugins/semantic-ui/dist/components/item.min.css +2 -2
- data/share/views/public/plugins/semantic-ui/dist/components/label.css +28 -34
- data/share/views/public/plugins/semantic-ui/dist/components/label.min.css +2 -2
- data/share/views/public/plugins/semantic-ui/dist/components/list.css +13 -15
- data/share/views/public/plugins/semantic-ui/dist/components/list.min.css +2 -2
- data/share/views/public/plugins/semantic-ui/dist/components/loader.css +4 -4
- data/share/views/public/plugins/semantic-ui/dist/components/loader.min.css +2 -2
- data/share/views/public/plugins/semantic-ui/dist/components/menu.css +50 -91
- data/share/views/public/plugins/semantic-ui/dist/components/menu.min.css +1 -1
- data/share/views/public/plugins/semantic-ui/dist/components/message.css +23 -46
- data/share/views/public/plugins/semantic-ui/dist/components/message.min.css +2 -2
- data/share/views/public/plugins/semantic-ui/dist/components/modal.css +56 -88
- data/share/views/public/plugins/semantic-ui/dist/components/modal.js +50 -117
- data/share/views/public/plugins/semantic-ui/dist/components/modal.min.css +2 -2
- data/share/views/public/plugins/semantic-ui/dist/components/modal.min.js +1 -1
- data/share/views/public/plugins/semantic-ui/dist/components/nag.css +2 -3
- data/share/views/public/plugins/semantic-ui/dist/components/nag.js +2 -2
- data/share/views/public/plugins/semantic-ui/dist/components/nag.min.css +2 -2
- data/share/views/public/plugins/semantic-ui/dist/components/nag.min.js +1 -1
- data/share/views/public/plugins/semantic-ui/dist/components/popup.css +20 -39
- data/share/views/public/plugins/semantic-ui/dist/components/popup.js +18 -64
- data/share/views/public/plugins/semantic-ui/dist/components/popup.min.css +2 -2
- data/share/views/public/plugins/semantic-ui/dist/components/popup.min.js +1 -1
- data/share/views/public/plugins/semantic-ui/dist/components/progress.css +2 -3
- data/share/views/public/plugins/semantic-ui/dist/components/progress.js +2 -2
- data/share/views/public/plugins/semantic-ui/dist/components/progress.min.css +2 -2
- data/share/views/public/plugins/semantic-ui/dist/components/progress.min.js +1 -1
- data/share/views/public/plugins/semantic-ui/dist/components/rail.css +1 -1
- data/share/views/public/plugins/semantic-ui/dist/components/rail.min.css +1 -1
- data/share/views/public/plugins/semantic-ui/dist/components/rating.css +1 -1
- data/share/views/public/plugins/semantic-ui/dist/components/rating.js +2 -2
- data/share/views/public/plugins/semantic-ui/dist/components/rating.min.css +1 -1
- data/share/views/public/plugins/semantic-ui/dist/components/rating.min.js +1 -1
- data/share/views/public/plugins/semantic-ui/dist/components/reset.css +7 -13
- data/share/views/public/plugins/semantic-ui/dist/components/reset.min.css +2 -2
- data/share/views/public/plugins/semantic-ui/dist/components/reveal.css +1 -12
- data/share/views/public/plugins/semantic-ui/dist/components/reveal.min.css +2 -2
- data/share/views/public/plugins/semantic-ui/dist/components/search.css +24 -61
- data/share/views/public/plugins/semantic-ui/dist/components/search.js +23 -77
- data/share/views/public/plugins/semantic-ui/dist/components/search.min.css +2 -2
- data/share/views/public/plugins/semantic-ui/dist/components/search.min.js +1 -1
- data/share/views/public/plugins/semantic-ui/dist/components/segment.css +20 -101
- data/share/views/public/plugins/semantic-ui/dist/components/segment.min.css +2 -2
- data/share/views/public/plugins/semantic-ui/dist/components/shape.css +2 -3
- data/share/views/public/plugins/semantic-ui/dist/components/shape.js +2 -2
- data/share/views/public/plugins/semantic-ui/dist/components/shape.min.css +2 -2
- data/share/views/public/plugins/semantic-ui/dist/components/shape.min.js +1 -1
- data/share/views/public/plugins/semantic-ui/dist/components/sidebar.css +3 -5
- data/share/views/public/plugins/semantic-ui/dist/components/sidebar.js +2 -2
- data/share/views/public/plugins/semantic-ui/dist/components/sidebar.min.css +2 -2
- data/share/views/public/plugins/semantic-ui/dist/components/sidebar.min.js +1 -1
- data/share/views/public/plugins/semantic-ui/dist/components/site.css +1 -2
- data/share/views/public/plugins/semantic-ui/dist/components/site.js +1 -1
- data/share/views/public/plugins/semantic-ui/dist/components/site.min.css +2 -2
- data/share/views/public/plugins/semantic-ui/dist/components/site.min.js +1 -1
- data/share/views/public/plugins/semantic-ui/dist/components/state.js +708 -0
- data/share/views/public/plugins/semantic-ui/dist/components/state.min.js +1 -0
- data/share/views/public/plugins/semantic-ui/dist/components/statistic.css +26 -23
- data/share/views/public/plugins/semantic-ui/dist/components/statistic.min.css +2 -2
- data/share/views/public/plugins/semantic-ui/dist/components/step.css +11 -14
- data/share/views/public/plugins/semantic-ui/dist/components/step.min.css +2 -2
- data/share/views/public/plugins/semantic-ui/dist/components/sticky.css +1 -1
- data/share/views/public/plugins/semantic-ui/dist/components/sticky.js +2 -2
- data/share/views/public/plugins/semantic-ui/dist/components/sticky.min.css +1 -1
- data/share/views/public/plugins/semantic-ui/dist/components/sticky.min.js +1 -1
- data/share/views/public/plugins/semantic-ui/dist/components/tab.css +2 -3
- data/share/views/public/plugins/semantic-ui/dist/components/tab.js +2 -2
- data/share/views/public/plugins/semantic-ui/dist/components/tab.min.css +2 -2
- data/share/views/public/plugins/semantic-ui/dist/components/tab.min.js +1 -1
- data/share/views/public/plugins/semantic-ui/dist/components/table.css +26 -56
- data/share/views/public/plugins/semantic-ui/dist/components/table.min.css +2 -2
- data/share/views/public/plugins/semantic-ui/dist/components/transition.css +2 -97
- data/share/views/public/plugins/semantic-ui/dist/components/transition.js +2 -2
- data/share/views/public/plugins/semantic-ui/dist/components/transition.min.css +2 -2
- data/share/views/public/plugins/semantic-ui/dist/components/transition.min.js +1 -1
- data/share/views/public/plugins/semantic-ui/dist/components/visibility.js +5 -5
- data/share/views/public/plugins/semantic-ui/dist/components/visibility.min.js +1 -1
- data/share/views/public/plugins/semantic-ui/dist/components/visit.js +517 -0
- data/share/views/public/plugins/semantic-ui/dist/components/visit.min.js +11 -0
- data/share/views/public/plugins/semantic-ui/dist/semantic.css +2119 -5300
- data/share/views/public/plugins/semantic-ui/dist/semantic.js +873 -445
- data/share/views/public/plugins/semantic-ui/dist/semantic.min.css +82 -90
- data/share/views/public/plugins/semantic-ui/dist/semantic.min.js +10 -2
- data/share/views/public/plugins/semantic-ui/dist/themes/default/assets/fonts/icons.eot +0 -0
- data/share/views/public/plugins/semantic-ui/dist/themes/default/assets/fonts/icons.svg +2668 -1515
- data/share/views/public/plugins/semantic-ui/dist/themes/default/assets/fonts/icons.ttf +0 -0
- data/share/views/public/plugins/semantic-ui/dist/themes/default/assets/fonts/icons.woff +0 -0
- data/share/views/public/plugins/semantic-ui/dist/themes/default/assets/fonts/icons.woff2 +0 -0
- data/share/views/public/plugins/semantic-ui/examples/assets/library/iframe-content.js +326 -729
- data/share/views/public/plugins/semantic-ui/examples/assets/library/iframe.js +326 -736
- data/share/views/public/plugins/semantic-ui/examples/grid.html +1 -0
- data/share/views/public/plugins/semantic-ui/examples/responsive.html +4 -4
- data/share/views/public/plugins/semantic-ui/examples/sticky.html +1 -1
- data/share/views/public/plugins/semantic-ui/examples/theming.html +0 -1
- data/share/views/public/plugins/semantic-ui/package-lock.json +1604 -5604
- data/share/views/public/plugins/semantic-ui/package.json +24 -24
- data/share/views/public/plugins/semantic-ui/src/README.md +7 -9
- data/share/views/public/plugins/semantic-ui/src/definitions/behaviors/api.js +1 -1
- data/share/views/public/plugins/semantic-ui/src/definitions/behaviors/colorize.js +280 -0
- data/share/views/public/plugins/semantic-ui/src/definitions/behaviors/form.js +13 -13
- data/share/views/public/plugins/semantic-ui/src/definitions/behaviors/state.js +708 -0
- data/share/views/public/plugins/semantic-ui/src/definitions/behaviors/visibility.js +4 -4
- data/share/views/public/plugins/semantic-ui/src/definitions/behaviors/visit.js +525 -0
- data/share/views/public/plugins/semantic-ui/src/definitions/collections/form.less +2 -2
- data/share/views/public/plugins/semantic-ui/src/definitions/collections/grid.less +6 -6
- data/share/views/public/plugins/semantic-ui/src/definitions/collections/menu.less +6 -15
- data/share/views/public/plugins/semantic-ui/src/definitions/collections/table.less +2 -7
- data/share/views/public/plugins/semantic-ui/src/definitions/elements/button.less +2 -137
- data/share/views/public/plugins/semantic-ui/src/definitions/elements/header.less +1 -1
- data/share/views/public/plugins/semantic-ui/src/definitions/elements/icon.less +3 -3
- data/share/views/public/plugins/semantic-ui/src/definitions/elements/image.less +2 -6
- data/share/views/public/plugins/semantic-ui/src/definitions/elements/input.less +35 -35
- data/share/views/public/plugins/semantic-ui/src/definitions/elements/label.less +13 -14
- data/share/views/public/plugins/semantic-ui/src/definitions/elements/list.less +14 -16
- data/share/views/public/plugins/semantic-ui/src/definitions/elements/loader.less +1 -0
- data/share/views/public/plugins/semantic-ui/src/definitions/elements/reveal.less +0 -10
- data/share/views/public/plugins/semantic-ui/src/definitions/elements/segment.less +0 -54
- data/share/views/public/plugins/semantic-ui/src/definitions/globals/site.less +0 -1
- data/share/views/public/plugins/semantic-ui/src/definitions/modules/accordion.js +3 -6
- data/share/views/public/plugins/semantic-ui/src/definitions/modules/checkbox.js +1 -1
- data/share/views/public/plugins/semantic-ui/src/definitions/modules/dimmer.js +3 -28
- data/share/views/public/plugins/semantic-ui/src/definitions/modules/dimmer.less +9 -34
- data/share/views/public/plugins/semantic-ui/src/definitions/modules/dropdown.js +22 -98
- data/share/views/public/plugins/semantic-ui/src/definitions/modules/dropdown.less +2 -14
- data/share/views/public/plugins/semantic-ui/src/definitions/modules/embed.js +0 -10
- data/share/views/public/plugins/semantic-ui/src/definitions/modules/modal.js +49 -116
- data/share/views/public/plugins/semantic-ui/src/definitions/modules/modal.less +26 -46
- data/share/views/public/plugins/semantic-ui/src/definitions/modules/nag.js +1 -1
- data/share/views/public/plugins/semantic-ui/src/definitions/modules/popup.js +17 -63
- data/share/views/public/plugins/semantic-ui/src/definitions/modules/popup.less +1 -1
- data/share/views/public/plugins/semantic-ui/src/definitions/modules/progress.js +1 -1
- data/share/views/public/plugins/semantic-ui/src/definitions/modules/rating.js +1 -1
- data/share/views/public/plugins/semantic-ui/src/definitions/modules/rating.less +1 -1
- data/share/views/public/plugins/semantic-ui/src/definitions/modules/search.js +22 -76
- data/share/views/public/plugins/semantic-ui/src/definitions/modules/search.less +17 -48
- data/share/views/public/plugins/semantic-ui/src/definitions/modules/shape.js +1 -1
- data/share/views/public/plugins/semantic-ui/src/definitions/modules/sidebar.js +1 -1
- data/share/views/public/plugins/semantic-ui/src/definitions/modules/sticky.js +1 -1
- data/share/views/public/plugins/semantic-ui/src/definitions/modules/tab.js +1 -1
- data/share/views/public/plugins/semantic-ui/src/definitions/modules/transition.js +1 -1
- data/share/views/public/plugins/semantic-ui/src/definitions/views/statistic.less +3 -0
- data/share/views/public/plugins/semantic-ui/src/theme.config.example +47 -48
- data/share/views/public/plugins/semantic-ui/src/theme.less +1 -1
- data/share/views/public/plugins/semantic-ui/src/themes/basic/elements/button.variables +1 -1
- data/share/views/public/plugins/semantic-ui/src/themes/basic/modules/progress.variables +2 -2
- data/share/views/public/plugins/semantic-ui/src/themes/bookish/elements/header.variables +2 -2
- data/share/views/public/plugins/semantic-ui/src/themes/bootstrap3/elements/button.variables +2 -2
- data/share/views/public/plugins/semantic-ui/src/themes/chubby/elements/button.variables +1 -1
- data/share/views/public/plugins/semantic-ui/src/themes/default/assets/fonts/icons.eot +0 -0
- data/share/views/public/plugins/semantic-ui/src/themes/default/assets/fonts/icons.svg +2668 -1515
- data/share/views/public/plugins/semantic-ui/src/themes/default/assets/fonts/icons.ttf +0 -0
- data/share/views/public/plugins/semantic-ui/src/themes/default/assets/fonts/icons.woff +0 -0
- data/share/views/public/plugins/semantic-ui/src/themes/default/assets/fonts/icons.woff2 +0 -0
- data/share/views/public/plugins/semantic-ui/src/themes/default/collections/breadcrumb.variables +1 -1
- data/share/views/public/plugins/semantic-ui/src/themes/default/collections/form.variables +1 -1
- data/share/views/public/plugins/semantic-ui/src/themes/default/collections/menu.variables +22 -22
- data/share/views/public/plugins/semantic-ui/src/themes/default/collections/message.variables +1 -1
- data/share/views/public/plugins/semantic-ui/src/themes/default/collections/table.variables +7 -8
- data/share/views/public/plugins/semantic-ui/src/themes/default/elements/button.variables +4 -6
- data/share/views/public/plugins/semantic-ui/src/themes/default/elements/divider.variables +2 -2
- data/share/views/public/plugins/semantic-ui/src/themes/default/elements/flag.overrides +0 -5
- data/share/views/public/plugins/semantic-ui/src/themes/default/elements/header.variables +1 -1
- data/share/views/public/plugins/semantic-ui/src/themes/default/elements/icon.overrides +907 -1632
- data/share/views/public/plugins/semantic-ui/src/themes/default/elements/icon.variables +7 -39
- data/share/views/public/plugins/semantic-ui/src/themes/default/elements/label.variables +10 -10
- data/share/views/public/plugins/semantic-ui/src/themes/default/elements/list.variables +1 -1
- data/share/views/public/plugins/semantic-ui/src/themes/default/elements/loader.variables +0 -1
- data/share/views/public/plugins/semantic-ui/src/themes/default/elements/reveal.variables +1 -2
- data/share/views/public/plugins/semantic-ui/src/themes/default/elements/segment.variables +13 -28
- data/share/views/public/plugins/semantic-ui/src/themes/default/elements/step.variables +4 -4
- data/share/views/public/plugins/semantic-ui/src/themes/default/globals/site.variables +179 -192
- data/share/views/public/plugins/semantic-ui/src/themes/default/modules/accordion.overrides +1 -1
- data/share/views/public/plugins/semantic-ui/src/themes/default/modules/accordion.variables +1 -1
- data/share/views/public/plugins/semantic-ui/src/themes/default/modules/checkbox.variables +2 -2
- data/share/views/public/plugins/semantic-ui/src/themes/default/modules/dimmer.variables +5 -2
- data/share/views/public/plugins/semantic-ui/src/themes/default/modules/dropdown.overrides +14 -11
- data/share/views/public/plugins/semantic-ui/src/themes/default/modules/dropdown.variables +8 -12
- data/share/views/public/plugins/semantic-ui/src/themes/default/modules/modal.variables +29 -33
- data/share/views/public/plugins/semantic-ui/src/themes/default/modules/popup.variables +3 -4
- data/share/views/public/plugins/semantic-ui/src/themes/default/modules/progress.variables +2 -2
- data/share/views/public/plugins/semantic-ui/src/themes/default/modules/search.variables +5 -8
- data/share/views/public/plugins/semantic-ui/src/themes/default/modules/transition.overrides +2 -54
- data/share/views/public/plugins/semantic-ui/src/themes/default/views/ad.variables +2 -2
- data/share/views/public/plugins/semantic-ui/src/themes/default/views/card.variables +1 -1
- data/share/views/public/plugins/semantic-ui/src/themes/default/views/comment.variables +1 -1
- data/share/views/public/plugins/semantic-ui/src/themes/default/views/feed.variables +4 -4
- data/share/views/public/plugins/semantic-ui/src/themes/default/views/item.variables +1 -1
- data/share/views/public/plugins/semantic-ui/src/themes/default/views/statistic.variables +7 -8
- data/share/views/public/plugins/semantic-ui/tasks/admin/components/create.js +1 -0
- data/share/views/public/plugins/semantic-ui/tasks/admin/components/init.js +2 -2
- data/share/views/public/plugins/semantic-ui/tasks/admin/components/update.js +1 -1
- data/share/views/public/plugins/semantic-ui/tasks/admin/distributions/update.js +1 -1
- data/share/views/public/plugins/semantic-ui/tasks/admin/register.js +1 -1
- data/share/views/public/plugins/semantic-ui/tasks/build/css.js +1 -1
- data/share/views/public/plugins/semantic-ui/tasks/build/javascript.js +2 -2
- data/share/views/public/plugins/semantic-ui/tasks/collections/internal.js +1 -1
- data/share/views/public/plugins/semantic-ui/tasks/config/admin/release.js +0 -1
- data/share/views/public/plugins/semantic-ui/tasks/config/defaults.js +0 -1
- data/share/views/public/plugins/semantic-ui/tasks/config/project/install.js +7 -2
- data/share/views/public/plugins/semantic-ui/tasks/config/tasks.js +2 -6
- data/share/views/public/plugins/semantic-ui/tasks/docs/build.js +2 -2
- data/share/views/public/plugins/semantic-ui/tasks/docs/serve.js +4 -4
- data/share/views/public/plugins/semantic-ui/tasks/install.js +2 -2
- data/share/views/public/plugins/semantic-ui/tasks/rtl/build.js +1 -1
- data/share/views/public/plugins/semantic-ui/tasks/rtl/watch.js +5 -5
- data/share/views/public/plugins/semantic-ui/tasks/watch.js +4 -4
- metadata +11 -27
- data/share/views/public/plugins/semantic-ui/dist/components/placeholder.css +0 -239
- data/share/views/public/plugins/semantic-ui/dist/components/placeholder.min.css +0 -9
- data/share/views/public/plugins/semantic-ui/dist/themes/default/assets/fonts/brand-icons.eot +0 -0
- data/share/views/public/plugins/semantic-ui/dist/themes/default/assets/fonts/brand-icons.svg +0 -1008
- data/share/views/public/plugins/semantic-ui/dist/themes/default/assets/fonts/brand-icons.ttf +0 -0
- data/share/views/public/plugins/semantic-ui/dist/themes/default/assets/fonts/brand-icons.woff +0 -0
- data/share/views/public/plugins/semantic-ui/dist/themes/default/assets/fonts/brand-icons.woff2 +0 -0
- data/share/views/public/plugins/semantic-ui/dist/themes/default/assets/fonts/outline-icons.eot +0 -0
- data/share/views/public/plugins/semantic-ui/dist/themes/default/assets/fonts/outline-icons.svg +0 -366
- data/share/views/public/plugins/semantic-ui/dist/themes/default/assets/fonts/outline-icons.ttf +0 -0
- data/share/views/public/plugins/semantic-ui/dist/themes/default/assets/fonts/outline-icons.woff +0 -0
- data/share/views/public/plugins/semantic-ui/dist/themes/default/assets/fonts/outline-icons.woff2 +0 -0
- data/share/views/public/plugins/semantic-ui/src/definitions/elements/placeholder.less +0 -232
- data/share/views/public/plugins/semantic-ui/src/themes/default/assets/fonts/brand-icons.eot +0 -0
- data/share/views/public/plugins/semantic-ui/src/themes/default/assets/fonts/brand-icons.svg +0 -1008
- data/share/views/public/plugins/semantic-ui/src/themes/default/assets/fonts/brand-icons.ttf +0 -0
- data/share/views/public/plugins/semantic-ui/src/themes/default/assets/fonts/brand-icons.woff +0 -0
- data/share/views/public/plugins/semantic-ui/src/themes/default/assets/fonts/brand-icons.woff2 +0 -0
- data/share/views/public/plugins/semantic-ui/src/themes/default/assets/fonts/outline-icons.eot +0 -0
- data/share/views/public/plugins/semantic-ui/src/themes/default/assets/fonts/outline-icons.svg +0 -366
- data/share/views/public/plugins/semantic-ui/src/themes/default/assets/fonts/outline-icons.ttf +0 -0
- data/share/views/public/plugins/semantic-ui/src/themes/default/assets/fonts/outline-icons.woff +0 -0
- data/share/views/public/plugins/semantic-ui/src/themes/default/assets/fonts/outline-icons.woff2 +0 -0
- data/share/views/public/plugins/semantic-ui/src/themes/default/elements/placeholder.overrides +0 -3
- data/share/views/public/plugins/semantic-ui/src/themes/default/elements/placeholder.variables +0 -55
Binary file
|
Binary file
|
Binary file
|
@@ -3,195 +3,101 @@
|
|
3
3
|
* Desc: Include this file in any page being loaded into an iframe
|
4
4
|
* to force the iframe to resize to the content size.
|
5
5
|
* Requires: iframeResizer.js on host page.
|
6
|
-
* Doc: https://github.com/davidjbradshaw/iframe-resizer
|
7
6
|
* Author: David J. Bradshaw - dave@bradshaw.net
|
8
7
|
* Contributor: Jure Mav - jure.mav@gmail.com
|
9
8
|
* Contributor: Ian Caunce - ian@hallnet.co.uk
|
10
9
|
*/
|
11
10
|
|
12
|
-
|
13
|
-
;(function(undefined) {
|
11
|
+
;(function() {
|
14
12
|
'use strict';
|
15
13
|
|
16
|
-
if(typeof window === 'undefined') return; // don't run for server side render
|
17
|
-
|
18
14
|
var
|
19
15
|
autoResize = true,
|
20
16
|
base = 10,
|
21
17
|
bodyBackground = '',
|
22
18
|
bodyMargin = 0,
|
23
19
|
bodyMarginStr = '',
|
24
|
-
bodyObserver = null,
|
25
20
|
bodyPadding = '',
|
26
21
|
calculateWidth = false,
|
27
22
|
doubleEventList = {'resize':1,'click':1},
|
28
23
|
eventCancelTimer = 128,
|
29
|
-
firstRun = true,
|
30
24
|
height = 1,
|
31
|
-
|
25
|
+
firstRun = true,
|
26
|
+
heightCalcModeDefault = 'offset',
|
32
27
|
heightCalcMode = heightCalcModeDefault,
|
33
28
|
initLock = true,
|
34
29
|
initMsg = '',
|
35
30
|
inPageLinks = {},
|
36
31
|
interval = 32,
|
37
|
-
intervalTimer = null,
|
38
32
|
logging = false,
|
39
33
|
msgID = '[iFrameSizer]', //Must match host page msg ID
|
40
34
|
msgIdLen = msgID.length,
|
41
35
|
myID = '',
|
42
|
-
|
43
|
-
resetRequiredMethods = {max:1,
|
44
|
-
resizeFrom = '
|
45
|
-
sendPermit = true,
|
46
|
-
target = window.parent,
|
36
|
+
publicMethods = false,
|
37
|
+
resetRequiredMethods = {max:1,scroll:1,bodyScroll:1,documentElementScroll:1},
|
38
|
+
resizeFrom = 'parent',
|
47
39
|
targetOriginDefault = '*',
|
40
|
+
target = window.parent,
|
48
41
|
tolerance = 0,
|
49
42
|
triggerLocked = false,
|
50
43
|
triggerLockedTimer = null,
|
51
|
-
|
52
|
-
width = 1,
|
53
|
-
widthCalcModeDefault = 'scroll',
|
54
|
-
widthCalcMode = widthCalcModeDefault,
|
55
|
-
win = window,
|
56
|
-
messageCallback = function() { warn('MessageCallback function not defined'); },
|
57
|
-
readyCallback = function() {},
|
58
|
-
pageInfoCallback = function() {},
|
59
|
-
customCalcMethods = {
|
60
|
-
height: function() {
|
61
|
-
warn('Custom height calculation function not defined');
|
62
|
-
return document.documentElement.offsetHeight;
|
63
|
-
},
|
64
|
-
width: function() {
|
65
|
-
warn('Custom width calculation function not defined');
|
66
|
-
return document.body.scrollWidth;
|
67
|
-
}
|
68
|
-
},
|
69
|
-
eventHandlersByName = {};
|
44
|
+
width = 1;
|
70
45
|
|
71
46
|
|
72
|
-
function addEventListener(el,evt,func)
|
73
|
-
|
74
|
-
if ('addEventListener' in window) {
|
47
|
+
function addEventListener(el,evt,func){
|
48
|
+
if ('addEventListener' in window){
|
75
49
|
el.addEventListener(evt,func, false);
|
76
|
-
} else if ('attachEvent' in window)
|
50
|
+
} else if ('attachEvent' in window){ //IE
|
77
51
|
el.attachEvent('on'+evt,func);
|
78
52
|
}
|
79
53
|
}
|
80
54
|
|
81
|
-
function
|
82
|
-
/* istanbul ignore else */ // Not testable in phantonJS
|
83
|
-
if ('removeEventListener' in window) {
|
84
|
-
el.removeEventListener(evt,func, false);
|
85
|
-
} else if ('detachEvent' in window) { //IE
|
86
|
-
el.detachEvent('on'+evt,func);
|
87
|
-
}
|
88
|
-
}
|
89
|
-
|
90
|
-
function capitalizeFirstLetter(string) {
|
91
|
-
return string.charAt(0).toUpperCase() + string.slice(1);
|
92
|
-
}
|
93
|
-
|
94
|
-
//Based on underscore.js
|
95
|
-
function throttle(func) {
|
96
|
-
var
|
97
|
-
context, args, result,
|
98
|
-
timeout = null,
|
99
|
-
previous = 0,
|
100
|
-
later = function() {
|
101
|
-
previous = getNow();
|
102
|
-
timeout = null;
|
103
|
-
result = func.apply(context, args);
|
104
|
-
if (!timeout) {
|
105
|
-
context = args = null;
|
106
|
-
}
|
107
|
-
};
|
108
|
-
|
109
|
-
return function() {
|
110
|
-
var now = getNow();
|
111
|
-
|
112
|
-
if (!previous) {
|
113
|
-
previous = now;
|
114
|
-
}
|
115
|
-
|
116
|
-
var remaining = throttledTimer - (now - previous);
|
117
|
-
|
118
|
-
context = this;
|
119
|
-
args = arguments;
|
120
|
-
|
121
|
-
if (remaining <= 0 || remaining > throttledTimer) {
|
122
|
-
if (timeout) {
|
123
|
-
clearTimeout(timeout);
|
124
|
-
timeout = null;
|
125
|
-
}
|
126
|
-
|
127
|
-
previous = now;
|
128
|
-
result = func.apply(context, args);
|
129
|
-
|
130
|
-
if (!timeout) {
|
131
|
-
context = args = null;
|
132
|
-
}
|
133
|
-
|
134
|
-
} else if (!timeout) {
|
135
|
-
timeout = setTimeout(later, remaining);
|
136
|
-
}
|
137
|
-
|
138
|
-
return result;
|
139
|
-
};
|
140
|
-
}
|
141
|
-
|
142
|
-
var getNow = Date.now || function() {
|
143
|
-
/* istanbul ignore next */ // Not testable in PhantonJS
|
144
|
-
return new Date().getTime();
|
145
|
-
};
|
146
|
-
|
147
|
-
function formatLogMsg(msg) {
|
55
|
+
function formatLogMsg(msg){
|
148
56
|
return msgID + '[' + myID + ']' + ' ' + msg;
|
149
57
|
}
|
150
58
|
|
151
|
-
function log(msg)
|
152
|
-
if (logging && ('object' === typeof window.console))
|
59
|
+
function log(msg){
|
60
|
+
if (logging && ('object' === typeof window.console)){
|
153
61
|
console.log(formatLogMsg(msg));
|
154
62
|
}
|
155
63
|
}
|
156
64
|
|
157
|
-
function warn(msg)
|
158
|
-
if ('object' === typeof window.console)
|
65
|
+
function warn(msg){
|
66
|
+
if ('object' === typeof window.console){
|
159
67
|
console.warn(formatLogMsg(msg));
|
160
68
|
}
|
161
69
|
}
|
162
70
|
|
163
71
|
|
164
|
-
function init()
|
165
|
-
|
166
|
-
|
167
|
-
readDataFromPage();
|
72
|
+
function init(){
|
73
|
+
log('Initializing iFrame');
|
74
|
+
readData();
|
168
75
|
setMargin();
|
169
76
|
setBodyStyle('background',bodyBackground);
|
170
77
|
setBodyStyle('padding',bodyPadding);
|
171
78
|
injectClearFixIntoBodyElement();
|
172
79
|
checkHeightMode();
|
173
|
-
checkWidthMode();
|
174
80
|
stopInfiniteResizingOfIFrame();
|
175
81
|
setupPublicMethods();
|
176
82
|
startEventListeners();
|
177
83
|
inPageLinks = setupInPageLinks();
|
178
84
|
sendSize('init','Init message from host page');
|
179
|
-
readyCallback();
|
180
85
|
}
|
181
86
|
|
182
|
-
function
|
87
|
+
function readData(){
|
88
|
+
|
89
|
+
var data = initMsg.substr(msgIdLen).split(':');
|
183
90
|
|
184
|
-
function strBool(str)
|
91
|
+
function strBool(str){
|
185
92
|
return 'true' === str ? true : false;
|
186
93
|
}
|
187
94
|
|
188
|
-
var data = initMsg.substr(msgIdLen).split(':');
|
189
|
-
|
190
95
|
myID = data[0];
|
191
96
|
bodyMargin = (undefined !== data[1]) ? Number(data[1]) : bodyMargin; //For V1 compatibility
|
192
97
|
calculateWidth = (undefined !== data[2]) ? strBool(data[2]) : calculateWidth;
|
193
98
|
logging = (undefined !== data[3]) ? strBool(data[3]) : logging;
|
194
99
|
interval = (undefined !== data[4]) ? Number(data[4]) : interval;
|
100
|
+
publicMethods = (undefined !== data[5]) ? strBool(data[5]) : publicMethods;
|
195
101
|
autoResize = (undefined !== data[6]) ? strBool(data[6]) : autoResize;
|
196
102
|
bodyMarginStr = data[7];
|
197
103
|
heightCalcMode = (undefined !== data[8]) ? data[8] : heightCalcMode;
|
@@ -199,148 +105,84 @@
|
|
199
105
|
bodyPadding = data[10];
|
200
106
|
tolerance = (undefined !== data[11]) ? Number(data[11]) : tolerance;
|
201
107
|
inPageLinks.enable = (undefined !== data[12]) ? strBool(data[12]): false;
|
202
|
-
resizeFrom =
|
203
|
-
widthCalcMode = (undefined !== data[14]) ? data[14] : widthCalcMode;
|
204
|
-
}
|
205
|
-
|
206
|
-
function readDataFromPage() {
|
207
|
-
function readData() {
|
208
|
-
var data = window.iFrameResizer;
|
209
|
-
|
210
|
-
log('Reading data from page: ' + JSON.stringify(data));
|
211
|
-
|
212
|
-
messageCallback = ('messageCallback' in data) ? data.messageCallback : messageCallback;
|
213
|
-
readyCallback = ('readyCallback' in data) ? data.readyCallback : readyCallback;
|
214
|
-
targetOriginDefault = ('targetOrigin' in data) ? data.targetOrigin : targetOriginDefault;
|
215
|
-
heightCalcMode = ('heightCalculationMethod' in data) ? data.heightCalculationMethod : heightCalcMode;
|
216
|
-
widthCalcMode = ('widthCalculationMethod' in data) ? data.widthCalculationMethod : widthCalcMode;
|
217
|
-
}
|
218
|
-
|
219
|
-
function setupCustomCalcMethods(calcMode, calcFunc) {
|
220
|
-
if ('function' === typeof calcMode) {
|
221
|
-
log('Setup custom ' + calcFunc + 'CalcMethod');
|
222
|
-
customCalcMethods[calcFunc] = calcMode;
|
223
|
-
calcMode = 'custom';
|
224
|
-
}
|
225
|
-
|
226
|
-
return calcMode;
|
227
|
-
}
|
228
|
-
|
229
|
-
if(('iFrameResizer' in window) && (Object === window.iFrameResizer.constructor)) {
|
230
|
-
readData();
|
231
|
-
heightCalcMode = setupCustomCalcMethods(heightCalcMode, 'height');
|
232
|
-
widthCalcMode = setupCustomCalcMethods(widthCalcMode, 'width');
|
233
|
-
}
|
234
|
-
|
235
|
-
log('TargetOrigin for parent set to: ' + targetOriginDefault);
|
108
|
+
resizeFrom = data[13];
|
236
109
|
}
|
237
110
|
|
238
|
-
|
239
|
-
|
240
|
-
if (-1 !== value.indexOf('-')) {
|
111
|
+
function chkCSS(attr,value){
|
112
|
+
if (-1 !== value.indexOf('-')){
|
241
113
|
warn('Negative CSS value ignored for '+attr);
|
242
114
|
value='';
|
243
115
|
}
|
244
116
|
return value;
|
245
117
|
}
|
246
118
|
|
247
|
-
function setBodyStyle(attr,value)
|
248
|
-
if ((undefined !== value) && ('' !== value) && ('null' !== value))
|
119
|
+
function setBodyStyle(attr,value){
|
120
|
+
if ((undefined !== value) && ('' !== value) && ('null' !== value)){
|
249
121
|
document.body.style[attr] = value;
|
250
122
|
log('Body '+attr+' set to "'+value+'"');
|
251
123
|
}
|
252
124
|
}
|
253
125
|
|
254
|
-
function setMargin()
|
126
|
+
function setMargin(){
|
255
127
|
//If called via V1 script, convert bodyMargin from int to str
|
256
|
-
if (undefined === bodyMarginStr)
|
128
|
+
if (undefined === bodyMarginStr){
|
257
129
|
bodyMarginStr = bodyMargin+'px';
|
258
130
|
}
|
259
|
-
|
260
|
-
setBodyStyle('margin',
|
131
|
+
chkCSS('margin',bodyMarginStr);
|
132
|
+
setBodyStyle('margin',bodyMarginStr);
|
261
133
|
}
|
262
134
|
|
263
|
-
function stopInfiniteResizingOfIFrame()
|
135
|
+
function stopInfiniteResizingOfIFrame(){
|
264
136
|
document.documentElement.style.height = '';
|
265
137
|
document.body.style.height = '';
|
266
138
|
log('HTML & body height set to "auto"');
|
267
139
|
}
|
268
140
|
|
269
141
|
|
270
|
-
function
|
271
|
-
|
272
|
-
|
273
|
-
|
274
|
-
|
275
|
-
|
276
|
-
}
|
277
|
-
|
278
|
-
eventHandlersByName[eventName] = handleEvent;
|
279
|
-
|
280
|
-
addEventListener(window,eventName,handleEvent);
|
281
|
-
},
|
282
|
-
remove: function(eventName) {
|
283
|
-
var handleEvent = eventHandlersByName[eventName];
|
284
|
-
delete eventHandlersByName[eventName];
|
285
|
-
|
286
|
-
removeEventListener(window,eventName,handleEvent);
|
287
|
-
}
|
288
|
-
};
|
142
|
+
function addTriggerEvent(options){
|
143
|
+
function addListener(eventName){
|
144
|
+
addEventListener(window,eventName,function(e){
|
145
|
+
sendSize(options.eventName,options.eventType);
|
146
|
+
});
|
147
|
+
}
|
289
148
|
|
290
|
-
if(options.eventNames && Array.prototype.map)
|
149
|
+
if(options.eventNames && Array.prototype.map){
|
291
150
|
options.eventName = options.eventNames[0];
|
292
|
-
options.eventNames.map(
|
151
|
+
options.eventNames.map(addListener);
|
293
152
|
} else {
|
294
|
-
|
153
|
+
addListener(options.eventName);
|
295
154
|
}
|
296
155
|
|
297
|
-
log(
|
156
|
+
log('Added event listener: ' + options.eventType);
|
298
157
|
}
|
299
158
|
|
300
|
-
function
|
301
|
-
|
302
|
-
|
303
|
-
|
304
|
-
|
305
|
-
|
306
|
-
|
307
|
-
|
308
|
-
|
309
|
-
|
310
|
-
|
311
|
-
manageTriggerEvent({method:method, eventType: 'Touch End', eventName: 'touchend' });
|
312
|
-
manageTriggerEvent({method:method, eventType: 'Touch Cancel', eventName: 'touchcancel' });
|
313
|
-
manageTriggerEvent({method:method, eventType: 'Transition Start', eventNames: ['transitionstart','webkitTransitionStart','MSTransitionStart','oTransitionStart','otransitionstart'] });
|
314
|
-
manageTriggerEvent({method:method, eventType: 'Transition Iteration', eventNames: ['transitioniteration','webkitTransitionIteration','MSTransitionIteration','oTransitionIteration','otransitioniteration'] });
|
315
|
-
manageTriggerEvent({method:method, eventType: 'Transition End', eventNames: ['transitionend','webkitTransitionEnd','MSTransitionEnd','oTransitionEnd','otransitionend'] });
|
316
|
-
if('child' === resizeFrom) {
|
317
|
-
manageTriggerEvent({method:method, eventType: 'IFrame Resized', eventName: 'resize' });
|
159
|
+
function initEventListeners(){
|
160
|
+
addTriggerEvent({ eventType: 'Animation Start', eventNames: ['animationstart','webkitAnimationStart'] });
|
161
|
+
addTriggerEvent({ eventType: 'Animation Iteration', eventNames: ['animationiteration','webkitAnimationIteration'] });
|
162
|
+
addTriggerEvent({ eventType: 'Animation End', eventNames: ['animationend','webkitAnimationEnd'] });
|
163
|
+
addTriggerEvent({ eventType: 'Device Orientation Change', eventName: 'deviceorientation' });
|
164
|
+
addTriggerEvent({ eventType: 'Transition End', eventNames: ['transitionend','webkitTransitionEnd','MSTransitionEnd','oTransitionEnd','otransitionend'] });
|
165
|
+
addTriggerEvent({ eventType: 'Window Clicked', eventName: 'click' });
|
166
|
+
//addTriggerEvent({ eventType: 'Window Mouse Down', eventName: 'mousedown' });
|
167
|
+
//addTriggerEvent({ eventType: 'Window Mouse Up', eventName: 'mouseup' });
|
168
|
+
if('child' === resizeFrom){
|
169
|
+
addTriggerEvent({ eventType: 'IFrame Resized', eventName: 'resize' });
|
318
170
|
}
|
319
171
|
}
|
320
172
|
|
321
|
-
function
|
322
|
-
if (
|
323
|
-
if (!(
|
324
|
-
warn(
|
325
|
-
|
173
|
+
function checkHeightMode(){
|
174
|
+
if (heightCalcModeDefault !== heightCalcMode){
|
175
|
+
if (!(heightCalcMode in getHeight)){
|
176
|
+
warn(heightCalcMode + ' is not a valid option for heightCalculationMethod.');
|
177
|
+
heightCalcMode='bodyScroll';
|
326
178
|
}
|
327
|
-
log(
|
179
|
+
log('Height calculation method set to "'+heightCalcMode+'"');
|
328
180
|
}
|
329
|
-
|
330
|
-
return calcMode;
|
331
|
-
}
|
332
|
-
|
333
|
-
function checkHeightMode() {
|
334
|
-
heightCalcMode = checkCalcMode(heightCalcMode,heightCalcModeDefault,getHeight,'height');
|
335
|
-
}
|
336
|
-
|
337
|
-
function checkWidthMode() {
|
338
|
-
widthCalcMode = checkCalcMode(widthCalcMode,widthCalcModeDefault,getWidth,'width');
|
339
181
|
}
|
340
182
|
|
341
|
-
function startEventListeners()
|
183
|
+
function startEventListeners(){
|
342
184
|
if ( true === autoResize ) {
|
343
|
-
|
185
|
+
initEventListeners();
|
344
186
|
setupMutationObserver();
|
345
187
|
}
|
346
188
|
else {
|
@@ -348,52 +190,23 @@
|
|
348
190
|
}
|
349
191
|
}
|
350
192
|
|
351
|
-
function
|
352
|
-
log('Disable outgoing messages');
|
353
|
-
sendPermit = false;
|
354
|
-
}
|
355
|
-
|
356
|
-
function removeMsgListener() {
|
357
|
-
log('Remove event listener: Message');
|
358
|
-
removeEventListener(window, 'message', receiver);
|
359
|
-
}
|
360
|
-
|
361
|
-
function disconnectMutationObserver() {
|
362
|
-
if (null !== bodyObserver) {
|
363
|
-
/* istanbul ignore next */ // Not testable in PhantonJS
|
364
|
-
bodyObserver.disconnect();
|
365
|
-
}
|
366
|
-
}
|
367
|
-
|
368
|
-
function stopEventListeners() {
|
369
|
-
manageEventListeners('remove');
|
370
|
-
disconnectMutationObserver();
|
371
|
-
clearInterval(intervalTimer);
|
372
|
-
}
|
373
|
-
|
374
|
-
function teardown() {
|
375
|
-
stopMsgsToParent();
|
376
|
-
removeMsgListener();
|
377
|
-
if (true === autoResize) stopEventListeners();
|
378
|
-
}
|
379
|
-
|
380
|
-
function injectClearFixIntoBodyElement() {
|
193
|
+
function injectClearFixIntoBodyElement(){
|
381
194
|
var clearFix = document.createElement('div');
|
382
|
-
clearFix.style.clear
|
195
|
+
clearFix.style.clear = 'both';
|
383
196
|
clearFix.style.display = 'block'; //Guard against this having been globally redefined in CSS.
|
384
197
|
document.body.appendChild(clearFix);
|
385
198
|
}
|
386
199
|
|
387
|
-
function setupInPageLinks()
|
200
|
+
function setupInPageLinks(){
|
388
201
|
|
389
|
-
function getPagePosition ()
|
202
|
+
function getPagePosition (){
|
390
203
|
return {
|
391
204
|
x: (window.pageXOffset !== undefined) ? window.pageXOffset : document.documentElement.scrollLeft,
|
392
205
|
y: (window.pageYOffset !== undefined) ? window.pageYOffset : document.documentElement.scrollTop
|
393
206
|
};
|
394
207
|
}
|
395
208
|
|
396
|
-
function getElementPosition(el)
|
209
|
+
function getElementPosition(el){
|
397
210
|
var
|
398
211
|
elPosition = el.getBoundingClientRect(),
|
399
212
|
pagePosition = getPagePosition();
|
@@ -404,20 +217,20 @@
|
|
404
217
|
};
|
405
218
|
}
|
406
219
|
|
407
|
-
function findTarget(location)
|
408
|
-
|
220
|
+
function findTarget(location){
|
221
|
+
var hash = location.split("#")[1] || "";
|
222
|
+
var hashData = decodeURIComponent(hash);
|
223
|
+
|
224
|
+
function jumpToTarget(target){
|
409
225
|
var jumpPosition = getElementPosition(target);
|
410
226
|
|
411
227
|
log('Moving to in page link (#'+hash+') at x: '+jumpPosition.x+' y: '+jumpPosition.y);
|
412
228
|
sendMsg(jumpPosition.y, jumpPosition.x, 'scrollToOffset'); // X&Y reversed at sendMsg uses height/width
|
413
229
|
}
|
414
230
|
|
415
|
-
var
|
416
|
-
hash = location.split('#')[1] || location, //Remove # if present
|
417
|
-
hashData = decodeURIComponent(hash),
|
418
|
-
target = document.getElementById(hashData) || document.getElementsByName(hashData)[0];
|
231
|
+
var target = document.getElementById(hashData) || document.getElementsByName(hashData)[0];
|
419
232
|
|
420
|
-
if (
|
233
|
+
if (target){
|
421
234
|
jumpToTarget(target);
|
422
235
|
} else {
|
423
236
|
log('In page link (#' + hash + ') not found in iFrame, so sending to parent');
|
@@ -425,22 +238,22 @@
|
|
425
238
|
}
|
426
239
|
}
|
427
240
|
|
428
|
-
function checkLocationHash()
|
429
|
-
if ('' !== location.hash && '#' !== location.hash)
|
241
|
+
function checkLocationHash(){
|
242
|
+
if ('' !== location.hash && '#' !== location.hash){
|
430
243
|
findTarget(location.href);
|
431
244
|
}
|
432
245
|
}
|
433
246
|
|
434
|
-
function bindAnchors()
|
435
|
-
function setupLink(el)
|
436
|
-
function linkClicked(e)
|
247
|
+
function bindAnchors(){
|
248
|
+
function setupLink(el){
|
249
|
+
function linkClicked(e){
|
437
250
|
e.preventDefault();
|
438
251
|
|
439
252
|
/*jshint validthis:true */
|
440
253
|
findTarget(this.getAttribute('href'));
|
441
254
|
}
|
442
255
|
|
443
|
-
if ('#' !== el.getAttribute('href'))
|
256
|
+
if ('#' !== el.getAttribute('href')){
|
444
257
|
addEventListener(el,'click',linkClicked);
|
445
258
|
}
|
446
259
|
}
|
@@ -448,17 +261,16 @@
|
|
448
261
|
Array.prototype.forEach.call( document.querySelectorAll( 'a[href^="#"]' ), setupLink );
|
449
262
|
}
|
450
263
|
|
451
|
-
function bindLocationHash()
|
264
|
+
function bindLocationHash(){
|
452
265
|
addEventListener(window,'hashchange',checkLocationHash);
|
453
266
|
}
|
454
267
|
|
455
|
-
function initCheck()
|
268
|
+
function initCheck(){ //check if page loaded with location hash after init resize
|
456
269
|
setTimeout(checkLocationHash,eventCancelTimer);
|
457
270
|
}
|
458
271
|
|
459
|
-
function enableInPageLinks()
|
460
|
-
|
461
|
-
if(Array.prototype.forEach && document.querySelectorAll) {
|
272
|
+
function enableInPageLinks(){
|
273
|
+
if(Array.prototype.forEach && document.querySelectorAll){
|
462
274
|
log('Setting up location.hash handlers');
|
463
275
|
bindAnchors();
|
464
276
|
bindLocationHash();
|
@@ -468,7 +280,7 @@
|
|
468
280
|
}
|
469
281
|
}
|
470
282
|
|
471
|
-
if(inPageLinks.enable)
|
283
|
+
if(inPageLinks.enable){
|
472
284
|
enableInPageLinks();
|
473
285
|
} else {
|
474
286
|
log('In page linking not enabled');
|
@@ -479,149 +291,85 @@
|
|
479
291
|
};
|
480
292
|
}
|
481
293
|
|
482
|
-
function setupPublicMethods()
|
483
|
-
|
484
|
-
|
485
|
-
|
486
|
-
|
487
|
-
|
488
|
-
|
489
|
-
|
490
|
-
|
491
|
-
|
492
|
-
}
|
493
|
-
|
494
|
-
|
294
|
+
function setupPublicMethods(){
|
295
|
+
if (publicMethods) {
|
296
|
+
log('Enable public methods');
|
297
|
+
|
298
|
+
window.parentIFrame = {
|
299
|
+
close: function closeF(){
|
300
|
+
sendMsg(0,0,'close');
|
301
|
+
},
|
302
|
+
getId: function getIdF(){
|
303
|
+
return myID;
|
304
|
+
},
|
305
|
+
moveToAnchor: function moveToAnchorF(hash){
|
306
|
+
inPageLinks.findTarget(hash);
|
307
|
+
},
|
308
|
+
reset: function resetF(){
|
309
|
+
resetIFrame('parentIFrame.reset');
|
310
|
+
},
|
311
|
+
scrollTo: function scrollToF(x,y){
|
312
|
+
sendMsg(y,x,'scrollTo'); // X&Y reversed at sendMsg uses height/width
|
313
|
+
},
|
314
|
+
scrollToOffset: function scrollToF(x,y){
|
315
|
+
sendMsg(y,x,'scrollToOffset'); // X&Y reversed at sendMsg uses height/width
|
316
|
+
},
|
317
|
+
sendMessage: function sendMessageF(msg,targetOrigin){
|
318
|
+
sendMsg(0,0,'message',JSON.stringify(msg),targetOrigin);
|
319
|
+
},
|
320
|
+
setHeightCalculationMethod: function setHeightCalculationMethodF(heightCalculationMethod){
|
321
|
+
heightCalcMode = heightCalculationMethod;
|
322
|
+
checkHeightMode();
|
323
|
+
},
|
324
|
+
setTargetOrigin: function setTargetOriginF(targetOrigin){
|
325
|
+
log('Set targetOrigin: '+targetOrigin);
|
326
|
+
targetOriginDefault = targetOrigin;
|
327
|
+
},
|
328
|
+
size: function sizeF(customHeight, customWidth){
|
329
|
+
var valString = ''+(customHeight?customHeight:'')+(customWidth?','+customWidth:'');
|
330
|
+
lockTrigger();
|
331
|
+
sendSize('size','parentIFrame.size('+valString+')', customHeight, customWidth);
|
495
332
|
}
|
496
|
-
|
497
|
-
|
498
|
-
},
|
499
|
-
|
500
|
-
close: function closeF() {
|
501
|
-
sendMsg(0,0,'close');
|
502
|
-
teardown();
|
503
|
-
},
|
504
|
-
|
505
|
-
getId: function getIdF() {
|
506
|
-
return myID;
|
507
|
-
},
|
508
|
-
|
509
|
-
getPageInfo: function getPageInfoF(callback) {
|
510
|
-
if ('function' === typeof callback) {
|
511
|
-
pageInfoCallback = callback;
|
512
|
-
sendMsg(0,0,'pageInfo');
|
513
|
-
} else {
|
514
|
-
pageInfoCallback = function() {};
|
515
|
-
sendMsg(0,0,'pageInfoStop');
|
516
|
-
}
|
517
|
-
},
|
518
|
-
|
519
|
-
moveToAnchor: function moveToAnchorF(hash) {
|
520
|
-
inPageLinks.findTarget(hash);
|
521
|
-
},
|
522
|
-
|
523
|
-
reset: function resetF() {
|
524
|
-
resetIFrame('parentIFrame.reset');
|
525
|
-
},
|
526
|
-
|
527
|
-
scrollTo: function scrollToF(x,y) {
|
528
|
-
sendMsg(y,x,'scrollTo'); // X&Y reversed at sendMsg uses height/width
|
529
|
-
},
|
530
|
-
|
531
|
-
scrollToOffset: function scrollToF(x,y) {
|
532
|
-
sendMsg(y,x,'scrollToOffset'); // X&Y reversed at sendMsg uses height/width
|
533
|
-
},
|
534
|
-
|
535
|
-
sendMessage: function sendMessageF(msg,targetOrigin) {
|
536
|
-
sendMsg(0,0,'message',JSON.stringify(msg),targetOrigin);
|
537
|
-
},
|
538
|
-
|
539
|
-
setHeightCalculationMethod: function setHeightCalculationMethodF(heightCalculationMethod) {
|
540
|
-
heightCalcMode = heightCalculationMethod;
|
541
|
-
checkHeightMode();
|
542
|
-
},
|
543
|
-
|
544
|
-
setWidthCalculationMethod: function setWidthCalculationMethodF(widthCalculationMethod) {
|
545
|
-
widthCalcMode = widthCalculationMethod;
|
546
|
-
checkWidthMode();
|
547
|
-
},
|
548
|
-
|
549
|
-
setTargetOrigin: function setTargetOriginF(targetOrigin) {
|
550
|
-
log('Set targetOrigin: '+targetOrigin);
|
551
|
-
targetOriginDefault = targetOrigin;
|
552
|
-
},
|
553
|
-
|
554
|
-
size: function sizeF(customHeight, customWidth) {
|
555
|
-
var valString = ''+(customHeight?customHeight:'')+(customWidth?','+customWidth:'');
|
556
|
-
//lockTrigger();
|
557
|
-
sendSize('size','parentIFrame.size('+valString+')', customHeight, customWidth);
|
558
|
-
}
|
559
|
-
};
|
333
|
+
};
|
334
|
+
}
|
560
335
|
}
|
561
336
|
|
562
|
-
function initInterval()
|
563
|
-
if ( 0 !== interval )
|
337
|
+
function initInterval(){
|
338
|
+
if ( 0 !== interval ){
|
564
339
|
log('setInterval: '+interval+'ms');
|
565
|
-
|
340
|
+
setInterval(function(){
|
566
341
|
sendSize('interval','setInterval: '+interval);
|
567
342
|
},Math.abs(interval));
|
568
343
|
}
|
569
344
|
}
|
570
345
|
|
571
|
-
|
572
|
-
|
573
|
-
|
574
|
-
|
575
|
-
|
576
|
-
|
577
|
-
|
578
|
-
element.addEventListener('error', imageError, false);
|
579
|
-
elements.push(element);
|
580
|
-
}
|
581
|
-
}
|
582
|
-
|
583
|
-
if (mutation.type === 'attributes' && mutation.attributeName === 'src') {
|
584
|
-
addImageLoadListener(mutation.target);
|
585
|
-
} else if (mutation.type === 'childList') {
|
586
|
-
Array.prototype.forEach.call(
|
587
|
-
mutation.target.querySelectorAll('img'),
|
588
|
-
addImageLoadListener
|
589
|
-
);
|
346
|
+
function setupInjectElementLoadListeners(mutations){
|
347
|
+
function addLoadListener(element){
|
348
|
+
if (element.height === undefined || element.width === undefined || 0 === element.height || 0 === element.width){
|
349
|
+
log('Attach listener to '+element.src);
|
350
|
+
addEventListener(element,'load', function imageLoaded(){
|
351
|
+
sendSize('imageLoad','Image loaded');
|
352
|
+
});
|
590
353
|
}
|
591
354
|
}
|
592
355
|
|
593
|
-
function
|
594
|
-
|
595
|
-
|
596
|
-
|
597
|
-
|
598
|
-
|
599
|
-
|
600
|
-
|
601
|
-
|
602
|
-
}
|
603
|
-
|
604
|
-
function imageEventTriggered(event,type,typeDesc) {
|
605
|
-
removeImageLoadListener(event.target);
|
606
|
-
sendSize(type, typeDesc + ': ' + event.target.src, undefined, undefined);
|
607
|
-
}
|
608
|
-
|
609
|
-
function imageLoaded(event) {
|
610
|
-
imageEventTriggered(event,'imageLoad','Image loaded');
|
611
|
-
}
|
612
|
-
|
613
|
-
function imageError(event) {
|
614
|
-
imageEventTriggered(event,'imageLoadFailed','Image load failed');
|
615
|
-
}
|
356
|
+
mutations.forEach(function (mutation) {
|
357
|
+
if (mutation.type === 'attributes' && mutation.attributeName === 'src'){
|
358
|
+
addLoadListener(mutation.target);
|
359
|
+
} else if (mutation.type === 'childList'){
|
360
|
+
var images = mutation.target.querySelectorAll('img');
|
361
|
+
Array.prototype.forEach.call(images,function (image) {
|
362
|
+
addLoadListener(image);
|
363
|
+
});
|
364
|
+
}
|
365
|
+
});
|
366
|
+
}
|
616
367
|
|
617
|
-
|
618
|
-
sendSize('mutationObserver','mutationObserver: ' + mutations[0].target + ' ' + mutations[0].type);
|
368
|
+
function setupMutationObserver(){
|
619
369
|
|
620
|
-
|
621
|
-
mutations.forEach(addImageLoadListners);
|
622
|
-
}
|
370
|
+
var MutationObserver = window.MutationObserver || window.WebKitMutationObserver;
|
623
371
|
|
624
|
-
function createMutationObserver()
|
372
|
+
function createMutationObserver(){
|
625
373
|
var
|
626
374
|
target = document.querySelector('body'),
|
627
375
|
|
@@ -632,44 +380,26 @@
|
|
632
380
|
characterDataOldValue : false,
|
633
381
|
childList : true,
|
634
382
|
subtree : true
|
635
|
-
}
|
383
|
+
},
|
636
384
|
|
637
|
-
|
385
|
+
observer = new MutationObserver(function(mutations) {
|
386
|
+
sendSize('mutationObserver','mutationObserver: ' + mutations[0].target + ' ' + mutations[0].type);
|
387
|
+
setupInjectElementLoadListeners(mutations); //Deal with WebKit asyncing image loading when tags are injected into the page
|
388
|
+
});
|
638
389
|
|
639
|
-
log('
|
390
|
+
log('Enable MutationObserver');
|
640
391
|
observer.observe(target, config);
|
641
|
-
|
642
|
-
return observer;
|
643
392
|
}
|
644
393
|
|
645
|
-
|
646
|
-
|
647
|
-
MutationObserver = window.MutationObserver || window.WebKitMutationObserver,
|
648
|
-
observer = createMutationObserver();
|
649
|
-
|
650
|
-
return {
|
651
|
-
disconnect: function () {
|
652
|
-
if ('disconnect' in observer) {
|
653
|
-
log('Disconnect body MutationObserver');
|
654
|
-
observer.disconnect();
|
655
|
-
elements.forEach(removeImageLoadListener);
|
656
|
-
}
|
657
|
-
}
|
658
|
-
};
|
659
|
-
}
|
660
|
-
|
661
|
-
function setupMutationObserver() {
|
662
|
-
var forceIntervalTimer = 0 > interval;
|
663
|
-
|
664
|
-
/* istanbul ignore if */ // Not testable in PhantomJS
|
665
|
-
if (window.MutationObserver || window.WebKitMutationObserver) {
|
666
|
-
if (forceIntervalTimer) {
|
394
|
+
if (MutationObserver){
|
395
|
+
if (0 > interval) {
|
667
396
|
initInterval();
|
668
397
|
} else {
|
669
|
-
|
398
|
+
createMutationObserver();
|
670
399
|
}
|
671
|
-
}
|
672
|
-
|
400
|
+
}
|
401
|
+
else {
|
402
|
+
warn('MutationObserver not supported in this browser!');
|
673
403
|
initInterval();
|
674
404
|
}
|
675
405
|
}
|
@@ -677,288 +407,211 @@
|
|
677
407
|
|
678
408
|
// document.documentElement.offsetHeight is not reliable, so
|
679
409
|
// we have to jump through hoops to get a better value.
|
680
|
-
function
|
681
|
-
|
682
|
-
|
683
|
-
|
410
|
+
function getBodyOffsetHeight(){
|
411
|
+
function getComputedBodyStyle(prop) {
|
412
|
+
function convertUnitsToPxForIE8(value) {
|
413
|
+
var PIXEL = /^\d+(px)?$/i;
|
414
|
+
|
415
|
+
if (PIXEL.test(value)) {
|
416
|
+
return parseInt(value,base);
|
417
|
+
}
|
418
|
+
|
419
|
+
var
|
420
|
+
style = el.style.left,
|
421
|
+
runtimeStyle = el.runtimeStyle.left;
|
684
422
|
|
685
|
-
|
686
|
-
|
423
|
+
el.runtimeStyle.left = el.currentStyle.left;
|
424
|
+
el.style.left = value || 0;
|
425
|
+
value = el.style.pixelLeft;
|
426
|
+
el.style.left = style;
|
427
|
+
el.runtimeStyle.left = runtimeStyle;
|
428
|
+
|
429
|
+
return value;
|
687
430
|
}
|
688
431
|
|
689
432
|
var
|
690
|
-
|
691
|
-
|
692
|
-
|
693
|
-
|
694
|
-
|
695
|
-
|
696
|
-
|
697
|
-
|
433
|
+
el = document.body,
|
434
|
+
retVal = 0;
|
435
|
+
|
436
|
+
if (('defaultView' in document) && ('getComputedStyle' in document.defaultView)) {
|
437
|
+
retVal = document.defaultView.getComputedStyle(el, null);
|
438
|
+
retVal = (null !== retVal) ? retVal[prop] : 0;
|
439
|
+
} else {//IE8
|
440
|
+
retVal = convertUnitsToPxForIE8(el.currentStyle[prop]);
|
441
|
+
}
|
698
442
|
|
699
|
-
return
|
443
|
+
return parseInt(retVal,base);
|
700
444
|
}
|
701
445
|
|
702
|
-
|
703
|
-
|
446
|
+
return document.body.offsetHeight +
|
447
|
+
getComputedBodyStyle('marginTop') +
|
448
|
+
getComputedBodyStyle('marginBottom');
|
449
|
+
}
|
704
450
|
|
705
|
-
|
706
|
-
|
707
|
-
|
708
|
-
retVal = (null !== retVal) ? retVal[prop] : 0;
|
709
|
-
} else {//IE8
|
710
|
-
retVal = convertUnitsToPxForIE8(el.currentStyle[prop]);
|
711
|
-
}
|
451
|
+
function getBodyScrollHeight(){
|
452
|
+
return document.body.scrollHeight;
|
453
|
+
}
|
712
454
|
|
713
|
-
|
455
|
+
function getDEOffsetHeight(){
|
456
|
+
return document.documentElement.offsetHeight;
|
714
457
|
}
|
715
458
|
|
716
|
-
function
|
717
|
-
|
718
|
-
throttledTimer = 2*timer;
|
719
|
-
log('Event throttle increased to ' + throttledTimer + 'ms');
|
720
|
-
}
|
459
|
+
function getDEScrollHeight(){
|
460
|
+
return document.documentElement.scrollHeight;
|
721
461
|
}
|
722
462
|
|
723
|
-
//
|
724
|
-
function
|
463
|
+
//From https://github.com/guardian/iframe-messenger
|
464
|
+
function getLowestElementHeight() {
|
725
465
|
var
|
726
|
-
|
727
|
-
|
728
|
-
|
729
|
-
|
730
|
-
|
731
|
-
|
732
|
-
|
733
|
-
|
734
|
-
if (elVal > maxVal) {
|
735
|
-
maxVal = elVal;
|
466
|
+
allElements = document.querySelectorAll('body *'),
|
467
|
+
allElementsLength = allElements.length,
|
468
|
+
maxBottomVal = 0,
|
469
|
+
timer = new Date().getTime();
|
470
|
+
|
471
|
+
for (var i = 0; i < allElementsLength; i++) {
|
472
|
+
if (allElements[i].getBoundingClientRect().bottom > maxBottomVal) {
|
473
|
+
maxBottomVal = allElements[i].getBoundingClientRect().bottom;
|
736
474
|
}
|
737
475
|
}
|
738
476
|
|
739
|
-
timer =
|
740
|
-
|
741
|
-
log('Parsed '+elementsLength+' HTML elements');
|
742
|
-
log('Element position calculated in ' + timer + 'ms');
|
477
|
+
timer = new Date().getTime() - timer;
|
743
478
|
|
744
|
-
|
479
|
+
log('Parsed '+allElementsLength+' HTML elements');
|
480
|
+
log('LowestElement bottom position calculated in ' + timer + 'ms');
|
745
481
|
|
746
|
-
return
|
482
|
+
return maxBottomVal;
|
747
483
|
}
|
748
484
|
|
749
|
-
function
|
485
|
+
function getAllHeights(){
|
750
486
|
return [
|
751
|
-
|
752
|
-
|
753
|
-
|
754
|
-
|
487
|
+
getBodyOffsetHeight(),
|
488
|
+
getBodyScrollHeight(),
|
489
|
+
getDEOffsetHeight(),
|
490
|
+
getDEScrollHeight()
|
755
491
|
];
|
756
492
|
}
|
757
493
|
|
758
|
-
function
|
759
|
-
|
760
|
-
warn('No tagged elements ('+tag+') found on page');
|
761
|
-
return document.querySelectorAll('body *');
|
762
|
-
}
|
763
|
-
|
764
|
-
var elements = document.querySelectorAll('['+tag+']');
|
765
|
-
|
766
|
-
if (0 === elements.length) noTaggedElementsFound();
|
767
|
-
|
768
|
-
return getMaxElement(side,elements);
|
494
|
+
function getMaxHeight(){
|
495
|
+
return Math.max.apply(null,getAllHeights());
|
769
496
|
}
|
770
497
|
|
771
|
-
function
|
772
|
-
return
|
498
|
+
function getMinHeight(){
|
499
|
+
return Math.min.apply(null,getAllHeights());
|
773
500
|
}
|
774
501
|
|
775
|
-
|
776
|
-
|
777
|
-
|
778
|
-
return document.body.offsetHeight + getComputedStyle('marginTop') + getComputedStyle('marginBottom');
|
779
|
-
},
|
780
|
-
|
781
|
-
offset: function() {
|
782
|
-
return getHeight.bodyOffset(); //Backwards compatability
|
783
|
-
},
|
784
|
-
|
785
|
-
bodyScroll: function getBodyScrollHeight() {
|
786
|
-
return document.body.scrollHeight;
|
787
|
-
},
|
788
|
-
|
789
|
-
custom: function getCustomWidth() {
|
790
|
-
return customCalcMethods.height();
|
791
|
-
},
|
792
|
-
|
793
|
-
documentElementOffset: function getDEOffsetHeight() {
|
794
|
-
return document.documentElement.offsetHeight;
|
795
|
-
},
|
796
|
-
|
797
|
-
documentElementScroll: function getDEScrollHeight() {
|
798
|
-
return document.documentElement.scrollHeight;
|
799
|
-
},
|
800
|
-
|
801
|
-
max: function getMaxHeight() {
|
802
|
-
return Math.max.apply(null,getAllMeasurements(getHeight));
|
803
|
-
},
|
804
|
-
|
805
|
-
min: function getMinHeight() {
|
806
|
-
return Math.min.apply(null,getAllMeasurements(getHeight));
|
807
|
-
},
|
808
|
-
|
809
|
-
grow: function growHeight() {
|
810
|
-
return getHeight.max(); //Run max without the forced downsizing
|
811
|
-
},
|
812
|
-
|
813
|
-
lowestElement: function getBestHeight() {
|
814
|
-
return Math.max(getHeight.bodyOffset(), getMaxElement('bottom',getAllElements()));
|
815
|
-
},
|
816
|
-
|
817
|
-
taggedElement: function getTaggedElementsHeight() {
|
818
|
-
return getTaggedElements('bottom','data-iframe-height');
|
819
|
-
}
|
820
|
-
},
|
821
|
-
|
822
|
-
getWidth = {
|
823
|
-
bodyScroll: function getBodyScrollWidth() {
|
824
|
-
return document.body.scrollWidth;
|
825
|
-
},
|
826
|
-
|
827
|
-
bodyOffset: function getBodyOffsetWidth() {
|
828
|
-
return document.body.offsetWidth;
|
829
|
-
},
|
830
|
-
|
831
|
-
custom: function getCustomWidth() {
|
832
|
-
return customCalcMethods.width();
|
833
|
-
},
|
834
|
-
|
835
|
-
documentElementScroll: function getDEScrollWidth() {
|
836
|
-
return document.documentElement.scrollWidth;
|
837
|
-
},
|
838
|
-
|
839
|
-
documentElementOffset: function getDEOffsetWidth() {
|
840
|
-
return document.documentElement.offsetWidth;
|
841
|
-
},
|
502
|
+
function getBestHeight(){
|
503
|
+
return Math.max(getBodyOffsetHeight(),getLowestElementHeight());
|
504
|
+
}
|
842
505
|
|
843
|
-
|
844
|
-
|
845
|
-
|
506
|
+
var getHeight = {
|
507
|
+
offset : getBodyOffsetHeight, //Backward compatability
|
508
|
+
bodyOffset : getBodyOffsetHeight,
|
509
|
+
bodyScroll : getBodyScrollHeight,
|
510
|
+
documentElementOffset : getDEOffsetHeight,
|
511
|
+
scroll : getDEScrollHeight, //Backward compatability
|
512
|
+
documentElementScroll : getDEScrollHeight,
|
513
|
+
max : getMaxHeight,
|
514
|
+
min : getMinHeight,
|
515
|
+
grow : getMaxHeight,
|
516
|
+
lowestElement : getBestHeight
|
517
|
+
};
|
846
518
|
|
847
|
-
|
848
|
-
|
849
|
-
|
519
|
+
function getWidth(){
|
520
|
+
return Math.max(
|
521
|
+
document.documentElement.scrollWidth,
|
522
|
+
document.body.scrollWidth
|
523
|
+
);
|
524
|
+
}
|
850
525
|
|
851
|
-
|
852
|
-
return Math.min.apply(null,getAllMeasurements(getWidth));
|
853
|
-
},
|
526
|
+
function sendSize(triggerEvent, triggerEventDesc, customHeight, customWidth){
|
854
527
|
|
855
|
-
|
856
|
-
return getMaxElement('right', getAllElements());
|
857
|
-
},
|
528
|
+
var currentHeight,currentWidth;
|
858
529
|
|
859
|
-
|
860
|
-
|
530
|
+
function recordTrigger(){
|
531
|
+
if (!(triggerEvent in {'reset':1,'resetPage':1,'init':1})){
|
532
|
+
log( 'Trigger event: ' + triggerEventDesc );
|
861
533
|
}
|
862
|
-
}
|
863
|
-
|
864
|
-
|
865
|
-
function sizeIFrame(triggerEvent, triggerEventDesc, customHeight, customWidth) {
|
534
|
+
}
|
866
535
|
|
867
|
-
function resizeIFrame()
|
536
|
+
function resizeIFrame(){
|
868
537
|
height = currentHeight;
|
869
538
|
width = currentWidth;
|
870
539
|
|
871
540
|
sendMsg(height,width,triggerEvent);
|
872
541
|
}
|
873
542
|
|
874
|
-
function
|
875
|
-
|
543
|
+
function isDoubleFiredEvent(){
|
544
|
+
return triggerLocked && (triggerEvent in doubleEventList);
|
545
|
+
}
|
546
|
+
|
547
|
+
function isSizeChangeDetected(){
|
548
|
+
function checkTolerance(a,b){
|
876
549
|
var retVal = Math.abs(a-b) <= tolerance;
|
877
550
|
return !retVal;
|
878
551
|
}
|
879
552
|
|
880
553
|
currentHeight = (undefined !== customHeight) ? customHeight : getHeight[heightCalcMode]();
|
881
|
-
currentWidth = (undefined !== customWidth ) ? customWidth : getWidth
|
554
|
+
currentWidth = (undefined !== customWidth ) ? customWidth : getWidth();
|
882
555
|
|
883
|
-
return
|
556
|
+
return checkTolerance(height,currentHeight) ||
|
557
|
+
(calculateWidth && checkTolerance(width,currentWidth));
|
884
558
|
}
|
885
559
|
|
886
|
-
function isForceResizableEvent()
|
560
|
+
function isForceResizableEvent(){
|
887
561
|
return !(triggerEvent in {'init':1,'interval':1,'size':1});
|
888
562
|
}
|
889
563
|
|
890
|
-
function
|
891
|
-
return (heightCalcMode in resetRequiredMethods)
|
564
|
+
function isForceResizableHeightCalcMode(){
|
565
|
+
return (heightCalcMode in resetRequiredMethods);
|
892
566
|
}
|
893
567
|
|
894
|
-
function logIgnored()
|
568
|
+
function logIgnored(){
|
895
569
|
log('No change in size detected');
|
896
570
|
}
|
897
571
|
|
898
|
-
function checkDownSizing()
|
899
|
-
if (isForceResizableEvent() &&
|
572
|
+
function checkDownSizing(){
|
573
|
+
if (isForceResizableEvent() && isForceResizableHeightCalcMode()){
|
900
574
|
resetIFrame(triggerEventDesc);
|
901
|
-
} else if (!(triggerEvent in {'interval':1}))
|
575
|
+
} else if (!(triggerEvent in {'interval':1})){
|
576
|
+
recordTrigger();
|
902
577
|
logIgnored();
|
903
578
|
}
|
904
579
|
}
|
905
580
|
|
906
|
-
|
907
|
-
|
908
|
-
|
909
|
-
|
910
|
-
|
911
|
-
} else {
|
912
|
-
checkDownSizing();
|
913
|
-
}
|
914
|
-
}
|
915
|
-
|
916
|
-
var sizeIFrameThrottled = throttle(sizeIFrame);
|
917
|
-
|
918
|
-
function sendSize(triggerEvent, triggerEventDesc, customHeight, customWidth) {
|
919
|
-
function recordTrigger() {
|
920
|
-
if (!(triggerEvent in {'reset':1,'resetPage':1,'init':1})) {
|
921
|
-
log( 'Trigger event: ' + triggerEventDesc );
|
922
|
-
}
|
923
|
-
}
|
924
|
-
|
925
|
-
function isDoubleFiredEvent() {
|
926
|
-
return triggerLocked && (triggerEvent in doubleEventList);
|
927
|
-
}
|
928
|
-
|
929
|
-
if (!isDoubleFiredEvent()) {
|
930
|
-
recordTrigger();
|
931
|
-
if (triggerEvent === 'init') {
|
932
|
-
sizeIFrame(triggerEvent, triggerEventDesc, customHeight, customWidth);
|
581
|
+
if (!isDoubleFiredEvent()){
|
582
|
+
if (isSizeChangeDetected()){
|
583
|
+
recordTrigger();
|
584
|
+
lockTrigger();
|
585
|
+
resizeIFrame();
|
933
586
|
} else {
|
934
|
-
|
587
|
+
checkDownSizing();
|
935
588
|
}
|
936
589
|
} else {
|
937
590
|
log('Trigger event cancelled: '+triggerEvent);
|
938
591
|
}
|
939
592
|
}
|
940
593
|
|
941
|
-
function lockTrigger()
|
942
|
-
if (!triggerLocked)
|
594
|
+
function lockTrigger(){
|
595
|
+
if (!triggerLocked){
|
943
596
|
triggerLocked = true;
|
944
597
|
log('Trigger event lock on');
|
945
598
|
}
|
946
599
|
clearTimeout(triggerLockedTimer);
|
947
|
-
triggerLockedTimer = setTimeout(function()
|
600
|
+
triggerLockedTimer = setTimeout(function(){
|
948
601
|
triggerLocked = false;
|
949
602
|
log('Trigger event lock off');
|
950
603
|
log('--');
|
951
604
|
},eventCancelTimer);
|
952
605
|
}
|
953
606
|
|
954
|
-
function triggerReset(triggerEvent)
|
607
|
+
function triggerReset(triggerEvent){
|
955
608
|
height = getHeight[heightCalcMode]();
|
956
|
-
width = getWidth
|
609
|
+
width = getWidth();
|
957
610
|
|
958
611
|
sendMsg(height,width,triggerEvent);
|
959
612
|
}
|
960
613
|
|
961
|
-
function resetIFrame(triggerEventDesc)
|
614
|
+
function resetIFrame(triggerEventDesc){
|
962
615
|
var hcm = heightCalcMode;
|
963
616
|
heightCalcMode = heightCalcModeDefault;
|
964
617
|
|
@@ -969,16 +622,16 @@
|
|
969
622
|
heightCalcMode = hcm;
|
970
623
|
}
|
971
624
|
|
972
|
-
function sendMsg(height,width,triggerEvent,msg,targetOrigin)
|
973
|
-
function setTargetOrigin()
|
974
|
-
if (undefined === targetOrigin)
|
625
|
+
function sendMsg(height,width,triggerEvent,msg,targetOrigin){
|
626
|
+
function setTargetOrigin(){
|
627
|
+
if (undefined === targetOrigin){
|
975
628
|
targetOrigin = targetOriginDefault;
|
976
629
|
} else {
|
977
630
|
log('Message targetOrigin: '+targetOrigin);
|
978
631
|
}
|
979
632
|
}
|
980
633
|
|
981
|
-
function sendToParent()
|
634
|
+
function sendToParent(){
|
982
635
|
var
|
983
636
|
size = height + ':' + width,
|
984
637
|
message = myID + ':' + size + ':' + triggerEvent + (undefined !== msg ? ':' + msg : '');
|
@@ -987,124 +640,68 @@
|
|
987
640
|
target.postMessage( msgID + message, targetOrigin);
|
988
641
|
}
|
989
642
|
|
990
|
-
|
991
|
-
|
992
|
-
sendToParent();
|
993
|
-
}
|
643
|
+
setTargetOrigin();
|
644
|
+
sendToParent();
|
994
645
|
}
|
995
646
|
|
996
647
|
function receiver(event) {
|
997
|
-
|
998
|
-
init: function initFromParent() {
|
999
|
-
function fireInit() {
|
1000
|
-
initMsg = event.data;
|
1001
|
-
target = event.source;
|
1002
|
-
|
1003
|
-
init();
|
1004
|
-
firstRun = false;
|
1005
|
-
setTimeout(function() { initLock = false;},eventCancelTimer);
|
1006
|
-
}
|
1007
|
-
|
1008
|
-
if (document.readyState === "interactive" || document.readyState === "complete") {
|
1009
|
-
fireInit();
|
1010
|
-
} else {
|
1011
|
-
log('Waiting for page ready');
|
1012
|
-
addEventListener(window,'readystatechange',processRequestFromParent.initFromParent);
|
1013
|
-
}
|
1014
|
-
},
|
1015
|
-
|
1016
|
-
reset: function resetFromParent() {
|
1017
|
-
if (!initLock) {
|
1018
|
-
log('Page size reset by host page');
|
1019
|
-
triggerReset('resetPage');
|
1020
|
-
} else {
|
1021
|
-
log('Page reset ignored by init');
|
1022
|
-
}
|
1023
|
-
},
|
1024
|
-
|
1025
|
-
resize: function resizeFromParent() {
|
1026
|
-
sendSize('resizeParent','Parent window requested size check');
|
1027
|
-
},
|
1028
|
-
|
1029
|
-
moveToAnchor: function moveToAnchorF() {
|
1030
|
-
inPageLinks.findTarget(getData());
|
1031
|
-
},
|
1032
|
-
inPageLink: function inPageLinkF() {this.moveToAnchor();}, //Backward compatability
|
1033
|
-
|
1034
|
-
pageInfo: function pageInfoFromParent() {
|
1035
|
-
var msgBody = getData();
|
1036
|
-
log('PageInfoFromParent called from parent: ' + msgBody );
|
1037
|
-
pageInfoCallback(JSON.parse(msgBody));
|
1038
|
-
log(' --');
|
1039
|
-
},
|
1040
|
-
|
1041
|
-
message: function messageFromParent() {
|
1042
|
-
var msgBody = getData();
|
1043
|
-
|
1044
|
-
log('MessageCallback called from parent: ' + msgBody );
|
1045
|
-
messageCallback(JSON.parse(msgBody));
|
1046
|
-
log(' --');
|
1047
|
-
}
|
1048
|
-
};
|
1049
|
-
|
1050
|
-
function isMessageForUs() {
|
648
|
+
function isMessageForUs(){
|
1051
649
|
return msgID === (''+event.data).substr(0,msgIdLen); //''+ Protects against non-string messages
|
1052
650
|
}
|
1053
651
|
|
1054
|
-
function
|
1055
|
-
|
652
|
+
function initFromParent(){
|
653
|
+
initMsg = event.data;
|
654
|
+
target = event.source;
|
655
|
+
|
656
|
+
init();
|
657
|
+
firstRun = false;
|
658
|
+
setTimeout(function(){ initLock = false;},eventCancelTimer);
|
1056
659
|
}
|
1057
660
|
|
1058
|
-
function
|
1059
|
-
|
661
|
+
function resetFromParent(){
|
662
|
+
if (!initLock){
|
663
|
+
log('Page size reset by host page');
|
664
|
+
triggerReset('resetPage');
|
665
|
+
} else {
|
666
|
+
log('Page reset ignored by init');
|
667
|
+
}
|
1060
668
|
}
|
1061
669
|
|
1062
|
-
function
|
1063
|
-
|
670
|
+
function resizeFromParent(){
|
671
|
+
sendSize('resizeParent','Parent window resized');
|
1064
672
|
}
|
1065
673
|
|
1066
|
-
function
|
1067
|
-
|
1068
|
-
//the message format would break backwards compatibity.
|
1069
|
-
return event.data.split(':')[2] in {'true':1,'false':1};
|
674
|
+
function getMessageType(){
|
675
|
+
return event.data.split(']')[1];
|
1070
676
|
}
|
1071
677
|
|
1072
|
-
function
|
1073
|
-
|
678
|
+
function isMiddleTier(){
|
679
|
+
return ('iFrameResize' in window);
|
680
|
+
}
|
1074
681
|
|
1075
|
-
|
1076
|
-
|
1077
|
-
|
1078
|
-
|
1079
|
-
}
|
682
|
+
function isInitMsg(){
|
683
|
+
//test if this message is from a child below us. This is an ugly test, however, updating
|
684
|
+
//the message format would break backwards compatibility.
|
685
|
+
return event.data.split(':')[2] in {'true':1,'false':1};
|
1080
686
|
}
|
1081
687
|
|
1082
|
-
|
1083
|
-
if (
|
1084
|
-
|
688
|
+
if (isMessageForUs()){
|
689
|
+
if (firstRun === false) {
|
690
|
+
if ('reset' === getMessageType()){
|
691
|
+
resetFromParent();
|
692
|
+
} else if ('resize' === getMessageType()){
|
693
|
+
resizeFromParent();
|
694
|
+
} else if (event.data !== initMsg && !isMiddleTier()){
|
695
|
+
warn('Unexpected message ('+event.data+')');
|
696
|
+
}
|
1085
697
|
} else if (isInitMsg()) {
|
1086
|
-
|
698
|
+
initFromParent();
|
1087
699
|
} else {
|
1088
|
-
|
700
|
+
warn('Received message of type ('+getMessageType()+') before initialization.');
|
1089
701
|
}
|
1090
702
|
}
|
1091
|
-
|
1092
|
-
if (isMessageForUs()) {
|
1093
|
-
processMessage();
|
1094
|
-
}
|
1095
|
-
}
|
1096
|
-
|
1097
|
-
//Normally the parent kicks things off when it detects the iFrame has loaded.
|
1098
|
-
//If this script is async-loaded, then tell parent page to retry init.
|
1099
|
-
function chkLateLoaded() {
|
1100
|
-
if('loading' !== document.readyState) {
|
1101
|
-
window.parent.postMessage('[iFrameResizerChild]Ready','*');
|
1102
|
-
}
|
1103
703
|
}
|
1104
704
|
|
1105
705
|
addEventListener(window, 'message', receiver);
|
1106
|
-
chkLateLoaded();
|
1107
|
-
|
1108
|
-
|
1109
706
|
|
1110
|
-
})();
|
707
|
+
})();
|