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.
Files changed (295) hide show
  1. checksums.yaml +4 -4
  2. data/lib/rbbt/rest/common/cache.rb +1 -0
  3. data/lib/rbbt/rest/file_server.rb +1 -2
  4. data/lib/rbbt/rest/workflow/jobs.rb +1 -0
  5. data/share/views/public/plugins/semantic-ui/README.md +8 -6
  6. data/share/views/public/plugins/semantic-ui/RELEASE-NOTES.md +0 -216
  7. data/share/views/public/plugins/semantic-ui/dist/components/accordion.css +2 -3
  8. data/share/views/public/plugins/semantic-ui/dist/components/accordion.js +4 -7
  9. data/share/views/public/plugins/semantic-ui/dist/components/accordion.min.css +2 -2
  10. data/share/views/public/plugins/semantic-ui/dist/components/accordion.min.js +1 -1
  11. data/share/views/public/plugins/semantic-ui/dist/components/ad.css +1 -1
  12. data/share/views/public/plugins/semantic-ui/dist/components/ad.min.css +1 -1
  13. data/share/views/public/plugins/semantic-ui/dist/components/api.js +2 -2
  14. data/share/views/public/plugins/semantic-ui/dist/components/api.min.js +1 -1
  15. data/share/views/public/plugins/semantic-ui/dist/components/breadcrumb.css +1 -1
  16. data/share/views/public/plugins/semantic-ui/dist/components/breadcrumb.min.css +1 -1
  17. data/share/views/public/plugins/semantic-ui/dist/components/button.css +245 -634
  18. data/share/views/public/plugins/semantic-ui/dist/components/button.min.css +2 -2
  19. data/share/views/public/plugins/semantic-ui/dist/components/card.css +37 -70
  20. data/share/views/public/plugins/semantic-ui/dist/components/card.min.css +2 -2
  21. data/share/views/public/plugins/semantic-ui/dist/components/checkbox.css +12 -19
  22. data/share/views/public/plugins/semantic-ui/dist/components/checkbox.js +2 -2
  23. data/share/views/public/plugins/semantic-ui/dist/components/checkbox.min.css +2 -2
  24. data/share/views/public/plugins/semantic-ui/dist/components/checkbox.min.js +1 -1
  25. data/share/views/public/plugins/semantic-ui/dist/components/colorize.js +274 -0
  26. data/share/views/public/plugins/semantic-ui/dist/components/colorize.min.js +11 -0
  27. data/share/views/public/plugins/semantic-ui/dist/components/comment.css +2 -3
  28. data/share/views/public/plugins/semantic-ui/dist/components/comment.min.css +2 -2
  29. data/share/views/public/plugins/semantic-ui/dist/components/container.css +1 -1
  30. data/share/views/public/plugins/semantic-ui/dist/components/container.min.css +1 -1
  31. data/share/views/public/plugins/semantic-ui/dist/components/dimmer.css +9 -48
  32. data/share/views/public/plugins/semantic-ui/dist/components/dimmer.js +4 -29
  33. data/share/views/public/plugins/semantic-ui/dist/components/dimmer.min.css +2 -2
  34. data/share/views/public/plugins/semantic-ui/dist/components/dimmer.min.js +1 -1
  35. data/share/views/public/plugins/semantic-ui/dist/components/divider.css +1 -1
  36. data/share/views/public/plugins/semantic-ui/dist/components/divider.min.css +2 -2
  37. data/share/views/public/plugins/semantic-ui/dist/components/dropdown.css +48 -90
  38. data/share/views/public/plugins/semantic-ui/dist/components/dropdown.js +23 -99
  39. data/share/views/public/plugins/semantic-ui/dist/components/dropdown.min.css +2 -2
  40. data/share/views/public/plugins/semantic-ui/dist/components/dropdown.min.js +2 -1
  41. data/share/views/public/plugins/semantic-ui/dist/components/embed.css +1 -1
  42. data/share/views/public/plugins/semantic-ui/dist/components/embed.js +1 -11
  43. data/share/views/public/plugins/semantic-ui/dist/components/embed.min.css +1 -1
  44. data/share/views/public/plugins/semantic-ui/dist/components/embed.min.js +1 -1
  45. data/share/views/public/plugins/semantic-ui/dist/components/feed.css +4 -3
  46. data/share/views/public/plugins/semantic-ui/dist/components/feed.min.css +2 -2
  47. data/share/views/public/plugins/semantic-ui/dist/components/flag.css +1 -6
  48. data/share/views/public/plugins/semantic-ui/dist/components/flag.min.css +2 -2
  49. data/share/views/public/plugins/semantic-ui/dist/components/form.css +16 -29
  50. data/share/views/public/plugins/semantic-ui/dist/components/form.js +14 -14
  51. data/share/views/public/plugins/semantic-ui/dist/components/form.min.css +2 -2
  52. data/share/views/public/plugins/semantic-ui/dist/components/form.min.js +1 -1
  53. data/share/views/public/plugins/semantic-ui/dist/components/grid.css +52 -89
  54. data/share/views/public/plugins/semantic-ui/dist/components/grid.min.css +2 -2
  55. data/share/views/public/plugins/semantic-ui/dist/components/header.css +5 -11
  56. data/share/views/public/plugins/semantic-ui/dist/components/header.min.css +2 -2
  57. data/share/views/public/plugins/semantic-ui/dist/components/icon.css +1855 -3345
  58. data/share/views/public/plugins/semantic-ui/dist/components/icon.min.css +2 -2
  59. data/share/views/public/plugins/semantic-ui/dist/components/image.css +3 -7
  60. data/share/views/public/plugins/semantic-ui/dist/components/image.min.css +2 -2
  61. data/share/views/public/plugins/semantic-ui/dist/components/input.css +42 -50
  62. data/share/views/public/plugins/semantic-ui/dist/components/input.min.css +2 -2
  63. data/share/views/public/plugins/semantic-ui/dist/components/item.css +9 -10
  64. data/share/views/public/plugins/semantic-ui/dist/components/item.min.css +2 -2
  65. data/share/views/public/plugins/semantic-ui/dist/components/label.css +28 -34
  66. data/share/views/public/plugins/semantic-ui/dist/components/label.min.css +2 -2
  67. data/share/views/public/plugins/semantic-ui/dist/components/list.css +13 -15
  68. data/share/views/public/plugins/semantic-ui/dist/components/list.min.css +2 -2
  69. data/share/views/public/plugins/semantic-ui/dist/components/loader.css +4 -4
  70. data/share/views/public/plugins/semantic-ui/dist/components/loader.min.css +2 -2
  71. data/share/views/public/plugins/semantic-ui/dist/components/menu.css +50 -91
  72. data/share/views/public/plugins/semantic-ui/dist/components/menu.min.css +1 -1
  73. data/share/views/public/plugins/semantic-ui/dist/components/message.css +23 -46
  74. data/share/views/public/plugins/semantic-ui/dist/components/message.min.css +2 -2
  75. data/share/views/public/plugins/semantic-ui/dist/components/modal.css +56 -88
  76. data/share/views/public/plugins/semantic-ui/dist/components/modal.js +50 -117
  77. data/share/views/public/plugins/semantic-ui/dist/components/modal.min.css +2 -2
  78. data/share/views/public/plugins/semantic-ui/dist/components/modal.min.js +1 -1
  79. data/share/views/public/plugins/semantic-ui/dist/components/nag.css +2 -3
  80. data/share/views/public/plugins/semantic-ui/dist/components/nag.js +2 -2
  81. data/share/views/public/plugins/semantic-ui/dist/components/nag.min.css +2 -2
  82. data/share/views/public/plugins/semantic-ui/dist/components/nag.min.js +1 -1
  83. data/share/views/public/plugins/semantic-ui/dist/components/popup.css +20 -39
  84. data/share/views/public/plugins/semantic-ui/dist/components/popup.js +18 -64
  85. data/share/views/public/plugins/semantic-ui/dist/components/popup.min.css +2 -2
  86. data/share/views/public/plugins/semantic-ui/dist/components/popup.min.js +1 -1
  87. data/share/views/public/plugins/semantic-ui/dist/components/progress.css +2 -3
  88. data/share/views/public/plugins/semantic-ui/dist/components/progress.js +2 -2
  89. data/share/views/public/plugins/semantic-ui/dist/components/progress.min.css +2 -2
  90. data/share/views/public/plugins/semantic-ui/dist/components/progress.min.js +1 -1
  91. data/share/views/public/plugins/semantic-ui/dist/components/rail.css +1 -1
  92. data/share/views/public/plugins/semantic-ui/dist/components/rail.min.css +1 -1
  93. data/share/views/public/plugins/semantic-ui/dist/components/rating.css +1 -1
  94. data/share/views/public/plugins/semantic-ui/dist/components/rating.js +2 -2
  95. data/share/views/public/plugins/semantic-ui/dist/components/rating.min.css +1 -1
  96. data/share/views/public/plugins/semantic-ui/dist/components/rating.min.js +1 -1
  97. data/share/views/public/plugins/semantic-ui/dist/components/reset.css +7 -13
  98. data/share/views/public/plugins/semantic-ui/dist/components/reset.min.css +2 -2
  99. data/share/views/public/plugins/semantic-ui/dist/components/reveal.css +1 -12
  100. data/share/views/public/plugins/semantic-ui/dist/components/reveal.min.css +2 -2
  101. data/share/views/public/plugins/semantic-ui/dist/components/search.css +24 -61
  102. data/share/views/public/plugins/semantic-ui/dist/components/search.js +23 -77
  103. data/share/views/public/plugins/semantic-ui/dist/components/search.min.css +2 -2
  104. data/share/views/public/plugins/semantic-ui/dist/components/search.min.js +1 -1
  105. data/share/views/public/plugins/semantic-ui/dist/components/segment.css +20 -101
  106. data/share/views/public/plugins/semantic-ui/dist/components/segment.min.css +2 -2
  107. data/share/views/public/plugins/semantic-ui/dist/components/shape.css +2 -3
  108. data/share/views/public/plugins/semantic-ui/dist/components/shape.js +2 -2
  109. data/share/views/public/plugins/semantic-ui/dist/components/shape.min.css +2 -2
  110. data/share/views/public/plugins/semantic-ui/dist/components/shape.min.js +1 -1
  111. data/share/views/public/plugins/semantic-ui/dist/components/sidebar.css +3 -5
  112. data/share/views/public/plugins/semantic-ui/dist/components/sidebar.js +2 -2
  113. data/share/views/public/plugins/semantic-ui/dist/components/sidebar.min.css +2 -2
  114. data/share/views/public/plugins/semantic-ui/dist/components/sidebar.min.js +1 -1
  115. data/share/views/public/plugins/semantic-ui/dist/components/site.css +1 -2
  116. data/share/views/public/plugins/semantic-ui/dist/components/site.js +1 -1
  117. data/share/views/public/plugins/semantic-ui/dist/components/site.min.css +2 -2
  118. data/share/views/public/plugins/semantic-ui/dist/components/site.min.js +1 -1
  119. data/share/views/public/plugins/semantic-ui/dist/components/state.js +708 -0
  120. data/share/views/public/plugins/semantic-ui/dist/components/state.min.js +1 -0
  121. data/share/views/public/plugins/semantic-ui/dist/components/statistic.css +26 -23
  122. data/share/views/public/plugins/semantic-ui/dist/components/statistic.min.css +2 -2
  123. data/share/views/public/plugins/semantic-ui/dist/components/step.css +11 -14
  124. data/share/views/public/plugins/semantic-ui/dist/components/step.min.css +2 -2
  125. data/share/views/public/plugins/semantic-ui/dist/components/sticky.css +1 -1
  126. data/share/views/public/plugins/semantic-ui/dist/components/sticky.js +2 -2
  127. data/share/views/public/plugins/semantic-ui/dist/components/sticky.min.css +1 -1
  128. data/share/views/public/plugins/semantic-ui/dist/components/sticky.min.js +1 -1
  129. data/share/views/public/plugins/semantic-ui/dist/components/tab.css +2 -3
  130. data/share/views/public/plugins/semantic-ui/dist/components/tab.js +2 -2
  131. data/share/views/public/plugins/semantic-ui/dist/components/tab.min.css +2 -2
  132. data/share/views/public/plugins/semantic-ui/dist/components/tab.min.js +1 -1
  133. data/share/views/public/plugins/semantic-ui/dist/components/table.css +26 -56
  134. data/share/views/public/plugins/semantic-ui/dist/components/table.min.css +2 -2
  135. data/share/views/public/plugins/semantic-ui/dist/components/transition.css +2 -97
  136. data/share/views/public/plugins/semantic-ui/dist/components/transition.js +2 -2
  137. data/share/views/public/plugins/semantic-ui/dist/components/transition.min.css +2 -2
  138. data/share/views/public/plugins/semantic-ui/dist/components/transition.min.js +1 -1
  139. data/share/views/public/plugins/semantic-ui/dist/components/visibility.js +5 -5
  140. data/share/views/public/plugins/semantic-ui/dist/components/visibility.min.js +1 -1
  141. data/share/views/public/plugins/semantic-ui/dist/components/visit.js +517 -0
  142. data/share/views/public/plugins/semantic-ui/dist/components/visit.min.js +11 -0
  143. data/share/views/public/plugins/semantic-ui/dist/semantic.css +2119 -5300
  144. data/share/views/public/plugins/semantic-ui/dist/semantic.js +873 -445
  145. data/share/views/public/plugins/semantic-ui/dist/semantic.min.css +82 -90
  146. data/share/views/public/plugins/semantic-ui/dist/semantic.min.js +10 -2
  147. data/share/views/public/plugins/semantic-ui/dist/themes/default/assets/fonts/icons.eot +0 -0
  148. data/share/views/public/plugins/semantic-ui/dist/themes/default/assets/fonts/icons.svg +2668 -1515
  149. data/share/views/public/plugins/semantic-ui/dist/themes/default/assets/fonts/icons.ttf +0 -0
  150. data/share/views/public/plugins/semantic-ui/dist/themes/default/assets/fonts/icons.woff +0 -0
  151. data/share/views/public/plugins/semantic-ui/dist/themes/default/assets/fonts/icons.woff2 +0 -0
  152. data/share/views/public/plugins/semantic-ui/examples/assets/library/iframe-content.js +326 -729
  153. data/share/views/public/plugins/semantic-ui/examples/assets/library/iframe.js +326 -736
  154. data/share/views/public/plugins/semantic-ui/examples/grid.html +1 -0
  155. data/share/views/public/plugins/semantic-ui/examples/responsive.html +4 -4
  156. data/share/views/public/plugins/semantic-ui/examples/sticky.html +1 -1
  157. data/share/views/public/plugins/semantic-ui/examples/theming.html +0 -1
  158. data/share/views/public/plugins/semantic-ui/package-lock.json +1604 -5604
  159. data/share/views/public/plugins/semantic-ui/package.json +24 -24
  160. data/share/views/public/plugins/semantic-ui/src/README.md +7 -9
  161. data/share/views/public/plugins/semantic-ui/src/definitions/behaviors/api.js +1 -1
  162. data/share/views/public/plugins/semantic-ui/src/definitions/behaviors/colorize.js +280 -0
  163. data/share/views/public/plugins/semantic-ui/src/definitions/behaviors/form.js +13 -13
  164. data/share/views/public/plugins/semantic-ui/src/definitions/behaviors/state.js +708 -0
  165. data/share/views/public/plugins/semantic-ui/src/definitions/behaviors/visibility.js +4 -4
  166. data/share/views/public/plugins/semantic-ui/src/definitions/behaviors/visit.js +525 -0
  167. data/share/views/public/plugins/semantic-ui/src/definitions/collections/form.less +2 -2
  168. data/share/views/public/plugins/semantic-ui/src/definitions/collections/grid.less +6 -6
  169. data/share/views/public/plugins/semantic-ui/src/definitions/collections/menu.less +6 -15
  170. data/share/views/public/plugins/semantic-ui/src/definitions/collections/table.less +2 -7
  171. data/share/views/public/plugins/semantic-ui/src/definitions/elements/button.less +2 -137
  172. data/share/views/public/plugins/semantic-ui/src/definitions/elements/header.less +1 -1
  173. data/share/views/public/plugins/semantic-ui/src/definitions/elements/icon.less +3 -3
  174. data/share/views/public/plugins/semantic-ui/src/definitions/elements/image.less +2 -6
  175. data/share/views/public/plugins/semantic-ui/src/definitions/elements/input.less +35 -35
  176. data/share/views/public/plugins/semantic-ui/src/definitions/elements/label.less +13 -14
  177. data/share/views/public/plugins/semantic-ui/src/definitions/elements/list.less +14 -16
  178. data/share/views/public/plugins/semantic-ui/src/definitions/elements/loader.less +1 -0
  179. data/share/views/public/plugins/semantic-ui/src/definitions/elements/reveal.less +0 -10
  180. data/share/views/public/plugins/semantic-ui/src/definitions/elements/segment.less +0 -54
  181. data/share/views/public/plugins/semantic-ui/src/definitions/globals/site.less +0 -1
  182. data/share/views/public/plugins/semantic-ui/src/definitions/modules/accordion.js +3 -6
  183. data/share/views/public/plugins/semantic-ui/src/definitions/modules/checkbox.js +1 -1
  184. data/share/views/public/plugins/semantic-ui/src/definitions/modules/dimmer.js +3 -28
  185. data/share/views/public/plugins/semantic-ui/src/definitions/modules/dimmer.less +9 -34
  186. data/share/views/public/plugins/semantic-ui/src/definitions/modules/dropdown.js +22 -98
  187. data/share/views/public/plugins/semantic-ui/src/definitions/modules/dropdown.less +2 -14
  188. data/share/views/public/plugins/semantic-ui/src/definitions/modules/embed.js +0 -10
  189. data/share/views/public/plugins/semantic-ui/src/definitions/modules/modal.js +49 -116
  190. data/share/views/public/plugins/semantic-ui/src/definitions/modules/modal.less +26 -46
  191. data/share/views/public/plugins/semantic-ui/src/definitions/modules/nag.js +1 -1
  192. data/share/views/public/plugins/semantic-ui/src/definitions/modules/popup.js +17 -63
  193. data/share/views/public/plugins/semantic-ui/src/definitions/modules/popup.less +1 -1
  194. data/share/views/public/plugins/semantic-ui/src/definitions/modules/progress.js +1 -1
  195. data/share/views/public/plugins/semantic-ui/src/definitions/modules/rating.js +1 -1
  196. data/share/views/public/plugins/semantic-ui/src/definitions/modules/rating.less +1 -1
  197. data/share/views/public/plugins/semantic-ui/src/definitions/modules/search.js +22 -76
  198. data/share/views/public/plugins/semantic-ui/src/definitions/modules/search.less +17 -48
  199. data/share/views/public/plugins/semantic-ui/src/definitions/modules/shape.js +1 -1
  200. data/share/views/public/plugins/semantic-ui/src/definitions/modules/sidebar.js +1 -1
  201. data/share/views/public/plugins/semantic-ui/src/definitions/modules/sticky.js +1 -1
  202. data/share/views/public/plugins/semantic-ui/src/definitions/modules/tab.js +1 -1
  203. data/share/views/public/plugins/semantic-ui/src/definitions/modules/transition.js +1 -1
  204. data/share/views/public/plugins/semantic-ui/src/definitions/views/statistic.less +3 -0
  205. data/share/views/public/plugins/semantic-ui/src/theme.config.example +47 -48
  206. data/share/views/public/plugins/semantic-ui/src/theme.less +1 -1
  207. data/share/views/public/plugins/semantic-ui/src/themes/basic/elements/button.variables +1 -1
  208. data/share/views/public/plugins/semantic-ui/src/themes/basic/modules/progress.variables +2 -2
  209. data/share/views/public/plugins/semantic-ui/src/themes/bookish/elements/header.variables +2 -2
  210. data/share/views/public/plugins/semantic-ui/src/themes/bootstrap3/elements/button.variables +2 -2
  211. data/share/views/public/plugins/semantic-ui/src/themes/chubby/elements/button.variables +1 -1
  212. data/share/views/public/plugins/semantic-ui/src/themes/default/assets/fonts/icons.eot +0 -0
  213. data/share/views/public/plugins/semantic-ui/src/themes/default/assets/fonts/icons.svg +2668 -1515
  214. data/share/views/public/plugins/semantic-ui/src/themes/default/assets/fonts/icons.ttf +0 -0
  215. data/share/views/public/plugins/semantic-ui/src/themes/default/assets/fonts/icons.woff +0 -0
  216. data/share/views/public/plugins/semantic-ui/src/themes/default/assets/fonts/icons.woff2 +0 -0
  217. data/share/views/public/plugins/semantic-ui/src/themes/default/collections/breadcrumb.variables +1 -1
  218. data/share/views/public/plugins/semantic-ui/src/themes/default/collections/form.variables +1 -1
  219. data/share/views/public/plugins/semantic-ui/src/themes/default/collections/menu.variables +22 -22
  220. data/share/views/public/plugins/semantic-ui/src/themes/default/collections/message.variables +1 -1
  221. data/share/views/public/plugins/semantic-ui/src/themes/default/collections/table.variables +7 -8
  222. data/share/views/public/plugins/semantic-ui/src/themes/default/elements/button.variables +4 -6
  223. data/share/views/public/plugins/semantic-ui/src/themes/default/elements/divider.variables +2 -2
  224. data/share/views/public/plugins/semantic-ui/src/themes/default/elements/flag.overrides +0 -5
  225. data/share/views/public/plugins/semantic-ui/src/themes/default/elements/header.variables +1 -1
  226. data/share/views/public/plugins/semantic-ui/src/themes/default/elements/icon.overrides +907 -1632
  227. data/share/views/public/plugins/semantic-ui/src/themes/default/elements/icon.variables +7 -39
  228. data/share/views/public/plugins/semantic-ui/src/themes/default/elements/label.variables +10 -10
  229. data/share/views/public/plugins/semantic-ui/src/themes/default/elements/list.variables +1 -1
  230. data/share/views/public/plugins/semantic-ui/src/themes/default/elements/loader.variables +0 -1
  231. data/share/views/public/plugins/semantic-ui/src/themes/default/elements/reveal.variables +1 -2
  232. data/share/views/public/plugins/semantic-ui/src/themes/default/elements/segment.variables +13 -28
  233. data/share/views/public/plugins/semantic-ui/src/themes/default/elements/step.variables +4 -4
  234. data/share/views/public/plugins/semantic-ui/src/themes/default/globals/site.variables +179 -192
  235. data/share/views/public/plugins/semantic-ui/src/themes/default/modules/accordion.overrides +1 -1
  236. data/share/views/public/plugins/semantic-ui/src/themes/default/modules/accordion.variables +1 -1
  237. data/share/views/public/plugins/semantic-ui/src/themes/default/modules/checkbox.variables +2 -2
  238. data/share/views/public/plugins/semantic-ui/src/themes/default/modules/dimmer.variables +5 -2
  239. data/share/views/public/plugins/semantic-ui/src/themes/default/modules/dropdown.overrides +14 -11
  240. data/share/views/public/plugins/semantic-ui/src/themes/default/modules/dropdown.variables +8 -12
  241. data/share/views/public/plugins/semantic-ui/src/themes/default/modules/modal.variables +29 -33
  242. data/share/views/public/plugins/semantic-ui/src/themes/default/modules/popup.variables +3 -4
  243. data/share/views/public/plugins/semantic-ui/src/themes/default/modules/progress.variables +2 -2
  244. data/share/views/public/plugins/semantic-ui/src/themes/default/modules/search.variables +5 -8
  245. data/share/views/public/plugins/semantic-ui/src/themes/default/modules/transition.overrides +2 -54
  246. data/share/views/public/plugins/semantic-ui/src/themes/default/views/ad.variables +2 -2
  247. data/share/views/public/plugins/semantic-ui/src/themes/default/views/card.variables +1 -1
  248. data/share/views/public/plugins/semantic-ui/src/themes/default/views/comment.variables +1 -1
  249. data/share/views/public/plugins/semantic-ui/src/themes/default/views/feed.variables +4 -4
  250. data/share/views/public/plugins/semantic-ui/src/themes/default/views/item.variables +1 -1
  251. data/share/views/public/plugins/semantic-ui/src/themes/default/views/statistic.variables +7 -8
  252. data/share/views/public/plugins/semantic-ui/tasks/admin/components/create.js +1 -0
  253. data/share/views/public/plugins/semantic-ui/tasks/admin/components/init.js +2 -2
  254. data/share/views/public/plugins/semantic-ui/tasks/admin/components/update.js +1 -1
  255. data/share/views/public/plugins/semantic-ui/tasks/admin/distributions/update.js +1 -1
  256. data/share/views/public/plugins/semantic-ui/tasks/admin/register.js +1 -1
  257. data/share/views/public/plugins/semantic-ui/tasks/build/css.js +1 -1
  258. data/share/views/public/plugins/semantic-ui/tasks/build/javascript.js +2 -2
  259. data/share/views/public/plugins/semantic-ui/tasks/collections/internal.js +1 -1
  260. data/share/views/public/plugins/semantic-ui/tasks/config/admin/release.js +0 -1
  261. data/share/views/public/plugins/semantic-ui/tasks/config/defaults.js +0 -1
  262. data/share/views/public/plugins/semantic-ui/tasks/config/project/install.js +7 -2
  263. data/share/views/public/plugins/semantic-ui/tasks/config/tasks.js +2 -6
  264. data/share/views/public/plugins/semantic-ui/tasks/docs/build.js +2 -2
  265. data/share/views/public/plugins/semantic-ui/tasks/docs/serve.js +4 -4
  266. data/share/views/public/plugins/semantic-ui/tasks/install.js +2 -2
  267. data/share/views/public/plugins/semantic-ui/tasks/rtl/build.js +1 -1
  268. data/share/views/public/plugins/semantic-ui/tasks/rtl/watch.js +5 -5
  269. data/share/views/public/plugins/semantic-ui/tasks/watch.js +4 -4
  270. metadata +11 -27
  271. data/share/views/public/plugins/semantic-ui/dist/components/placeholder.css +0 -239
  272. data/share/views/public/plugins/semantic-ui/dist/components/placeholder.min.css +0 -9
  273. data/share/views/public/plugins/semantic-ui/dist/themes/default/assets/fonts/brand-icons.eot +0 -0
  274. data/share/views/public/plugins/semantic-ui/dist/themes/default/assets/fonts/brand-icons.svg +0 -1008
  275. data/share/views/public/plugins/semantic-ui/dist/themes/default/assets/fonts/brand-icons.ttf +0 -0
  276. data/share/views/public/plugins/semantic-ui/dist/themes/default/assets/fonts/brand-icons.woff +0 -0
  277. data/share/views/public/plugins/semantic-ui/dist/themes/default/assets/fonts/brand-icons.woff2 +0 -0
  278. data/share/views/public/plugins/semantic-ui/dist/themes/default/assets/fonts/outline-icons.eot +0 -0
  279. data/share/views/public/plugins/semantic-ui/dist/themes/default/assets/fonts/outline-icons.svg +0 -366
  280. data/share/views/public/plugins/semantic-ui/dist/themes/default/assets/fonts/outline-icons.ttf +0 -0
  281. data/share/views/public/plugins/semantic-ui/dist/themes/default/assets/fonts/outline-icons.woff +0 -0
  282. data/share/views/public/plugins/semantic-ui/dist/themes/default/assets/fonts/outline-icons.woff2 +0 -0
  283. data/share/views/public/plugins/semantic-ui/src/definitions/elements/placeholder.less +0 -232
  284. data/share/views/public/plugins/semantic-ui/src/themes/default/assets/fonts/brand-icons.eot +0 -0
  285. data/share/views/public/plugins/semantic-ui/src/themes/default/assets/fonts/brand-icons.svg +0 -1008
  286. data/share/views/public/plugins/semantic-ui/src/themes/default/assets/fonts/brand-icons.ttf +0 -0
  287. data/share/views/public/plugins/semantic-ui/src/themes/default/assets/fonts/brand-icons.woff +0 -0
  288. data/share/views/public/plugins/semantic-ui/src/themes/default/assets/fonts/brand-icons.woff2 +0 -0
  289. data/share/views/public/plugins/semantic-ui/src/themes/default/assets/fonts/outline-icons.eot +0 -0
  290. data/share/views/public/plugins/semantic-ui/src/themes/default/assets/fonts/outline-icons.svg +0 -366
  291. data/share/views/public/plugins/semantic-ui/src/themes/default/assets/fonts/outline-icons.ttf +0 -0
  292. data/share/views/public/plugins/semantic-ui/src/themes/default/assets/fonts/outline-icons.woff +0 -0
  293. data/share/views/public/plugins/semantic-ui/src/themes/default/assets/fonts/outline-icons.woff2 +0 -0
  294. data/share/views/public/plugins/semantic-ui/src/themes/default/elements/placeholder.overrides +0 -3
  295. data/share/views/public/plugins/semantic-ui/src/themes/default/elements/placeholder.variables +0 -55
@@ -2,22 +2,17 @@
2
2
  * File: iframeResizer.js
3
3
  * Desc: Force iframes to size to content.
4
4
  * Requires: iframeResizer.contentWindow.js to be loaded into the target frame.
5
- * Doc: https://github.com/davidjbradshaw/iframe-resizer
6
5
  * Author: David J. Bradshaw - dave@bradshaw.net
7
6
  * Contributor: Jure Mav - jure.mav@gmail.com
8
7
  * Contributor: Reed Dadoune - reed@dadoune.com
9
8
  */
10
-
11
-
12
- ;(function(undefined) {
9
+ ;(function() {
13
10
  'use strict';
14
11
 
15
- if(typeof window === 'undefined') return; // don't run for server side render
16
-
17
12
  var
18
13
  count = 0,
14
+ firstRun = true,
19
15
  logEnabled = false,
20
- hiddenCheckEnabled = false,
21
16
  msgHeader = 'message',
22
17
  msgHeaderLen = msgHeader.length,
23
18
  msgId = '[iFrameSizer]', //Must match iframe msg ID
@@ -27,7 +22,6 @@
27
22
  resetRequiredMethods = {max:1,scroll:1,bodyScroll:1,documentElementScroll:1},
28
23
  settings = {},
29
24
  timer = null,
30
- logId = 'Host Page',
31
25
 
32
26
  defaults = {
33
27
  autoResize : true,
@@ -36,10 +30,9 @@
36
30
  bodyMarginV1 : 8,
37
31
  bodyPadding : null,
38
32
  checkOrigin : true,
39
- inPageLinks : false,
40
- enablePublicMethods : true,
41
- heightCalculationMethod : 'bodyOffset',
42
- id : 'iFrameResizer',
33
+ enableInPageLinks : false,
34
+ enablePublicMethods : false,
35
+ heightCalculationMethod : 'offset',
43
36
  interval : 32,
44
37
  log : false,
45
38
  maxHeight : Infinity,
@@ -50,35 +43,23 @@
50
43
  scrolling : false,
51
44
  sizeHeight : true,
52
45
  sizeWidth : false,
53
- warningTimeout : 5000,
54
46
  tolerance : 0,
55
- widthCalculationMethod : 'scroll',
56
- closedCallback : function() {},
57
- initCallback : function() {},
58
- messageCallback : function() {warn('MessageCallback function not defined');},
59
- resizedCallback : function() {},
60
- scrollCallback : function() {return true;}
47
+ closedCallback : function(){},
48
+ initCallback : function(){},
49
+ messageCallback : function(){},
50
+ resizedCallback : function(){},
51
+ scrollCallback : function(){return true;}
61
52
  };
62
53
 
63
- function addEventListener(obj,evt,func) {
64
- /* istanbul ignore else */ // Not testable in PhantonJS
65
- if ('addEventListener' in window) {
54
+ function addEventListener(obj,evt,func){
55
+ if ('addEventListener' in window){
66
56
  obj.addEventListener(evt,func, false);
67
- } else if ('attachEvent' in window) {//IE
57
+ } else if ('attachEvent' in window){//IE
68
58
  obj.attachEvent('on'+evt,func);
69
59
  }
70
60
  }
71
61
 
72
- function removeEventListener(el,evt,func) {
73
- /* istanbul ignore else */ // Not testable in phantonJS
74
- if ('removeEventListener' in window) {
75
- el.removeEventListener(evt,func, false);
76
- } else if ('detachEvent' in window) { //IE
77
- el.detachEvent('on'+evt,func);
78
- }
79
- }
80
-
81
- function setupRequestAnimationFrame() {
62
+ function setupRequestAnimationFrame(){
82
63
  var
83
64
  vendors = ['moz', 'webkit', 'o', 'ms'],
84
65
  x;
@@ -88,70 +69,70 @@
88
69
  requestAnimationFrame = window[vendors[x] + 'RequestAnimationFrame'];
89
70
  }
90
71
 
91
- if (!(requestAnimationFrame)) {
92
- log('setup','RequestAnimationFrame not supported');
72
+ if (!(requestAnimationFrame)){
73
+ log(' RequestAnimationFrame not supported');
93
74
  }
94
75
  }
95
76
 
96
- function getMyID(iframeId) {
97
- var retStr = 'Host page: '+iframeId;
77
+ function getMyID(){
78
+ var retStr = 'Host page';
98
79
 
99
- if (window.top !== window.self) {
100
- if (window.parentIFrame && window.parentIFrame.getId) {
101
- retStr = window.parentIFrame.getId()+': '+iframeId;
80
+ if (window.top!==window.self){
81
+ if (window.parentIFrame){
82
+ retStr = window.parentIFrame.getId();
102
83
  } else {
103
- retStr = 'Nested host page: '+iframeId;
84
+ retStr = 'Nested host page';
104
85
  }
105
86
  }
106
87
 
107
88
  return retStr;
108
89
  }
109
90
 
110
- function formatLogHeader(iframeId) {
111
- return msgId + '[' + getMyID(iframeId) + ']';
112
- }
113
-
114
- function isLogEnabled(iframeId) {
115
- return settings[iframeId] ? settings[iframeId].log : logEnabled;
91
+ function formatLogMsg(msg){
92
+ return msgId + '[' + getMyID() + ']' + msg;
116
93
  }
117
94
 
118
- function log(iframeId,msg) {
119
- output('log',iframeId,msg,isLogEnabled(iframeId));
120
- }
121
-
122
- function info(iframeId,msg) {
123
- output('info',iframeId,msg,isLogEnabled(iframeId));
124
- }
125
-
126
- function warn(iframeId,msg) {
127
- output('warn',iframeId,msg,true);
95
+ function log(msg){
96
+ if (logEnabled && ('object' === typeof window.console)){
97
+ console.log(formatLogMsg(msg));
98
+ }
128
99
  }
129
100
 
130
- function output(type,iframeId,msg,enabled) {
131
- if (true === enabled && 'object' === typeof window.console) {
132
- console[type](formatLogHeader(iframeId),msg);
101
+ function warn(msg){
102
+ if ('object' === typeof window.console){
103
+ console.warn(formatLogMsg(msg));
133
104
  }
134
105
  }
135
106
 
136
- function iFrameListener(event) {
137
- function resizeIFrame() {
138
- function resize() {
107
+ function iFrameListener(event){
108
+ function resizeIFrame(){
109
+ function resize(){
139
110
  setSize(messageData);
140
- setPagePosition(iframeId);
141
- callback('resizedCallback',messageData);
111
+ setPagePosition();
112
+ settings[iframeID].resizedCallback(messageData);
142
113
  }
143
114
 
144
115
  ensureInRange('Height');
145
116
  ensureInRange('Width');
146
117
 
147
- syncResize(resize,messageData,'init');
118
+ syncResize(resize,messageData,'resetPage');
119
+ }
120
+
121
+ function closeIFrame(iframe){
122
+ var iframeID = iframe.id;
123
+
124
+ log(' Removing iFrame: '+iframeID);
125
+ iframe.parentNode.removeChild(iframe);
126
+ settings[iframeID].closedCallback(iframeID);
127
+ delete settings[iframeID];
128
+ log(' --');
148
129
  }
149
130
 
150
- function processMsg() {
131
+ function processMsg(){
151
132
  var data = msg.substr(msgIdLen).split(':');
152
133
 
153
134
  return {
154
- iframe: settings[data[0]] && settings[data[0]].iframe,
135
+ iframe: document.getElementById(data[0]),
155
136
  id: data[0],
156
137
  height: data[1],
157
138
  width: data[2],
@@ -159,887 +140,496 @@
159
140
  };
160
141
  }
161
142
 
162
- function ensureInRange(Dimension) {
143
+ function ensureInRange(Dimension){
163
144
  var
164
- max = Number(settings[iframeId]['max' + Dimension]),
165
- min = Number(settings[iframeId]['min' + Dimension]),
145
+ max = Number(settings[iframeID]['max'+Dimension]),
146
+ min = Number(settings[iframeID]['min'+Dimension]),
166
147
  dimension = Dimension.toLowerCase(),
167
148
  size = Number(messageData[dimension]);
168
149
 
169
- log(iframeId,'Checking ' + dimension + ' is in range ' + min + '-' + max);
150
+ if (min>max){
151
+ throw new Error('Value for min'+Dimension+' can not be greater than max'+Dimension);
152
+ }
153
+
154
+ log(' Checking '+dimension+' is in range '+min+'-'+max);
170
155
 
171
156
  if (size<min) {
172
157
  size=min;
173
- log(iframeId,'Set ' + dimension + ' to min value');
158
+ log(' Set '+dimension+' to min value');
174
159
  }
175
160
 
176
161
  if (size>max) {
177
162
  size=max;
178
- log(iframeId,'Set ' + dimension + ' to max value');
163
+ log(' Set '+dimension+' to max value');
179
164
  }
180
165
 
181
- messageData[dimension] = '' + size;
166
+ messageData[dimension]=''+size;
182
167
  }
183
168
 
184
169
 
185
- function isMessageFromIFrame() {
186
- function checkAllowedOrigin() {
187
- function checkList() {
188
- var
189
- i = 0,
190
- retCode = false;
191
-
192
- log(iframeId,'Checking connection is from allowed list of origins: ' + checkOrigin);
193
-
194
- for (; i < checkOrigin.length; i++) {
170
+ function isMessageFromIFrame(){
171
+ function checkAllowedOrigin(){
172
+ function checkList(){
173
+ log(' Checking connection is from allowed list of origins: ' + checkOrigin);
174
+ var i;
175
+ for (i = 0; i < checkOrigin.length; i++) {
195
176
  if (checkOrigin[i] === origin) {
196
- retCode = true;
197
- break;
177
+ return true;
198
178
  }
199
179
  }
200
- return retCode;
180
+ return false;
201
181
  }
202
182
 
203
- function checkSingle() {
204
- var remoteHost = settings[iframeId] && settings[iframeId].remoteHost;
205
- log(iframeId,'Checking connection is from: '+remoteHost);
206
- return origin === remoteHost;
183
+ function checkSingle(){
184
+ log(' Checking connection is from: '+remoteHost);
185
+ return origin == remoteHost;
207
186
  }
208
187
 
209
188
  return checkOrigin.constructor === Array ? checkList() : checkSingle();
210
189
  }
211
190
 
212
191
  var
213
- origin = event.origin,
214
- checkOrigin = settings[iframeId] && settings[iframeId].checkOrigin;
215
-
216
- if (checkOrigin && (''+origin !== 'null') && !checkAllowedOrigin()) {
217
- throw new Error(
218
- 'Unexpected message received from: ' + origin +
219
- ' for ' + messageData.iframe.id +
220
- '. Message was: ' + event.data +
221
- '. This error can be disabled by setting the checkOrigin: false option or by providing of array of trusted domains.'
222
- );
192
+ origin = event.origin,
193
+ checkOrigin = settings[iframeID].checkOrigin,
194
+ remoteHost = messageData.iframe.src.split('/').slice(0,3).join('/');
195
+
196
+ if (checkOrigin) {
197
+ if ((''+origin !== 'null') && !checkAllowedOrigin()) {
198
+ throw new Error(
199
+ 'Unexpected message received from: ' + origin +
200
+ ' for ' + messageData.iframe.id +
201
+ '. Message was: ' + event.data +
202
+ '. This error can be disabled by setting the checkOrigin: false option or by providing of array of trusted domains.'
203
+ );
204
+ }
223
205
  }
224
206
 
225
207
  return true;
226
208
  }
227
209
 
228
- function isMessageForUs() {
229
- return msgId === (('' + msg).substr(0,msgIdLen)) && (msg.substr(msgIdLen).split(':')[0] in settings); //''+Protects against non-string msg
210
+ function isMessageForUs(){
211
+ return msgId === ('' + msg).substr(0,msgIdLen); //''+Protects against non-string msg
230
212
  }
231
213
 
232
- function isMessageFromMetaParent() {
233
- //Test if this message is from a parent above us. This is an ugly test, however, updating
234
- //the message format would break backwards compatibity.
214
+ function isMessageFromMetaParent(){
215
+ //test if this message is from a parent above us. This is an ugly test, however, updating
216
+ //the message format would break backwards compatibility.
235
217
  var retCode = messageData.type in {'true':1,'false':1,'undefined':1};
236
218
 
237
- if (retCode) {
238
- log(iframeId,'Ignoring init message from meta parent page');
219
+ if (retCode){
220
+ log(' Ignoring init message from meta parent page');
239
221
  }
240
222
 
241
223
  return retCode;
242
224
  }
243
225
 
244
- function getMsgBody(offset) {
226
+ function getMsgBody(offset){
245
227
  return msg.substr(msg.indexOf(':')+msgHeaderLen+offset);
246
228
  }
247
229
 
248
- function forwardMsgFromIFrame(msgBody) {
249
- log(iframeId,'MessageCallback passed: {iframe: '+ messageData.iframe.id + ', message: ' + msgBody + '}');
250
- callback('messageCallback',{
230
+ function forwardMsgFromIFrame(msgBody){
231
+ log(' MessageCallback passed: {iframe: '+ messageData.iframe.id + ', message: ' + msgBody + '}');
232
+ settings[iframeID].messageCallback({
251
233
  iframe: messageData.iframe,
252
234
  message: JSON.parse(msgBody)
253
235
  });
254
- log(iframeId,'--');
255
- }
256
-
257
- function getPageInfo() {
258
- var
259
- bodyPosition = document.body.getBoundingClientRect(),
260
- iFramePosition = messageData.iframe.getBoundingClientRect();
261
-
262
- return JSON.stringify({
263
- iframeHeight: iFramePosition.height,
264
- iframeWidth: iFramePosition.width,
265
- clientHeight: Math.max(document.documentElement.clientHeight, window.innerHeight || 0),
266
- clientWidth: Math.max(document.documentElement.clientWidth, window.innerWidth || 0),
267
- offsetTop: parseInt(iFramePosition.top - bodyPosition.top, 10),
268
- offsetLeft: parseInt(iFramePosition.left - bodyPosition.left, 10),
269
- scrollTop: window.pageYOffset,
270
- scrollLeft: window.pageXOffset
271
- });
272
- }
273
-
274
- function sendPageInfoToIframe(iframe,iframeId) {
275
- function debouncedTrigger() {
276
- trigger(
277
- 'Send Page Info',
278
- 'pageInfo:' + getPageInfo(),
279
- iframe,
280
- iframeId
281
- );
282
- }
283
-
284
- debouce(debouncedTrigger,32);
285
- }
286
-
287
-
288
- function startPageInfoMonitor() {
289
- function setListener(type,func) {
290
- function sendPageInfo() {
291
- if (settings[id]) {
292
- sendPageInfoToIframe(settings[id].iframe,id);
293
- } else {
294
- stop();
295
- }
296
- }
297
-
298
- ['scroll','resize'].forEach(function(evt) {
299
- log(id, type + evt + ' listener for sendPageInfo');
300
- func(window,evt,sendPageInfo);
301
- });
302
- }
303
-
304
- function stop() {
305
- setListener('Remove ', removeEventListener);
306
- }
307
-
308
- function start() {
309
- setListener('Add ', addEventListener);
310
- }
311
-
312
- var id = iframeId; //Create locally scoped copy of iFrame ID
313
-
314
- start();
315
-
316
- if (settings[id]) {
317
- settings[id].stopPageInfo = stop;
318
- }
236
+ log(' --');
319
237
  }
320
238
 
321
- function stopPageInfoMonitor() {
322
- if (settings[iframeId] && settings[iframeId].stopPageInfo) {
323
- settings[iframeId].stopPageInfo();
324
- delete settings[iframeId].stopPageInfo;
325
- }
326
- }
327
-
328
- function checkIFrameExists() {
329
- var retBool = true;
330
-
239
+ function checkIFrameExists(){
331
240
  if (null === messageData.iframe) {
332
- warn(iframeId,'IFrame ('+messageData.id+') not found');
333
- retBool = false;
241
+ warn(' IFrame ('+messageData.id+') not found');
242
+ return false;
334
243
  }
335
- return retBool;
244
+ return true;
336
245
  }
337
246
 
338
- function getElementPosition(target) {
339
- var iFramePosition = target.getBoundingClientRect();
247
+ function getElementPosition(target){
248
+ var
249
+ iFramePosition = target.getBoundingClientRect();
340
250
 
341
- getPagePosition(iframeId);
251
+ getPagePosition();
342
252
 
343
253
  return {
344
- x: Math.floor( Number(iFramePosition.left) + Number(pagePosition.x) ),
345
- y: Math.floor( Number(iFramePosition.top) + Number(pagePosition.y) )
254
+ x: parseInt(iFramePosition.left, 10) + parseInt(pagePosition.x, 10),
255
+ y: parseInt(iFramePosition.top, 10) + parseInt(pagePosition.y, 10)
346
256
  };
347
257
  }
348
258
 
349
- function scrollRequestFromChild(addOffset) {
350
- /* istanbul ignore next */ //Not testable in Karma
351
- function reposition() {
259
+ function scrollRequestFromChild(addOffset){
260
+ function reposition(){
352
261
  pagePosition = newPosition;
262
+
353
263
  scrollTo();
354
- log(iframeId,'--');
264
+
265
+ log(' --');
355
266
  }
356
267
 
357
- function calcOffset() {
268
+ function calcOffset(){
358
269
  return {
359
270
  x: Number(messageData.width) + offset.x,
360
271
  y: Number(messageData.height) + offset.y
361
272
  };
362
273
  }
363
274
 
364
- function scrollParent() {
365
- if (window.parentIFrame) {
366
- window.parentIFrame['scrollTo'+(addOffset?'Offset':'')](newPosition.x,newPosition.y);
367
- } else {
368
- warn(iframeId,'Unable to scroll to requested position, window.parentIFrame not found');
369
- }
370
- }
371
-
372
275
  var
373
276
  offset = addOffset ? getElementPosition(messageData.iframe) : {x:0,y:0},
374
277
  newPosition = calcOffset();
375
278
 
376
- log(iframeId,'Reposition requested from iFrame (offset x:'+offset.x+' y:'+offset.y+')');
279
+ log(' Reposition requested from iFrame (offset x:'+offset.x+' y:'+offset.y+')');
377
280
 
378
- if(window.top !== window.self) {
379
- scrollParent();
281
+ if(window.top!==window.self){
282
+ if (window.parentIFrame){
283
+ if (addOffset){
284
+ parentIFrame.scrollToOffset(newPosition.x,newPosition.y);
285
+ } else {
286
+ parentIFrame.scrollTo(messageData.width,messageData.height);
287
+ }
288
+ } else {
289
+ warn(' Unable to scroll to requested position, window.parentIFrame not found');
290
+ }
380
291
  } else {
381
292
  reposition();
382
293
  }
294
+
383
295
  }
384
296
 
385
- function scrollTo() {
386
- if (false !== callback('scrollCallback',pagePosition)) {
387
- setPagePosition(iframeId);
388
- } else {
389
- unsetPagePosition();
297
+ function scrollTo(){
298
+ if (false !== settings[iframeID].scrollCallback(pagePosition)){
299
+ setPagePosition();
390
300
  }
391
301
  }
392
302
 
393
- function findTarget(location) {
394
- function jumpToTarget() {
303
+ function findTarget(location){
304
+ var hash = location.split("#")[1] || "";
305
+ var hashData = decodeURIComponent(hash);
306
+
307
+ function jumpToTarget(target){
395
308
  var jumpPosition = getElementPosition(target);
396
309
 
397
- log(iframeId,'Moving to in page link (#'+hash+') at x: '+jumpPosition.x+' y: '+jumpPosition.y);
310
+ log(' Moving to in page link (#'+hash+') at x: '+jumpPosition.x+' y: '+jumpPosition.y);
398
311
  pagePosition = {
399
312
  x: jumpPosition.x,
400
313
  y: jumpPosition.y
401
314
  };
402
315
 
403
316
  scrollTo();
404
- log(iframeId,'--');
317
+ log(' --');
405
318
  }
406
319
 
407
- function jumpToParent() {
408
- if (window.parentIFrame) {
409
- window.parentIFrame.moveToAnchor(hash);
320
+ var target = document.getElementById(hashData) || document.getElementsByName(hashData)[0];
321
+
322
+ if(window.top!==window.self){
323
+ if (window.parentIFrame){
324
+ parentIFrame.moveToAnchor(hash);
410
325
  } else {
411
- log(iframeId,'In page link #'+hash+' not found and window.parentIFrame not found');
326
+ log(' In page link #'+hash+' not found and window.parentIFrame not found');
412
327
  }
413
- }
414
-
415
- var
416
- hash = location.split('#')[1] || '',
417
- hashData = decodeURIComponent(hash),
418
- target = document.getElementById(hashData) || document.getElementsByName(hashData)[0];
419
-
420
- if (target) {
421
- jumpToTarget();
422
- } else if(window.top!==window.self) {
423
- jumpToParent();
328
+ } else if (target){
329
+ jumpToTarget(target);
424
330
  } else {
425
- log(iframeId,'In page link #'+hash+' not found');
331
+ log(' In page link #'+hash+' not found');
426
332
  }
427
333
  }
428
334
 
429
- function callback(funcName,val) {
430
- return chkCallback(iframeId,funcName,val);
431
- }
432
-
433
- function actionMsg() {
434
-
435
- if(settings[iframeId] && settings[iframeId].firstRun) firstRun();
436
-
437
- switch(messageData.type) {
438
- case 'close':
439
- if(settings[iframeId].closeRequestCallback) chkCallback(iframeId, 'closeRequestCallback', settings[iframeId].iframe);
440
- else closeIFrame(messageData.iframe);
441
- break;
442
- case 'message':
443
- forwardMsgFromIFrame(getMsgBody(6));
444
- break;
445
- case 'scrollTo':
446
- scrollRequestFromChild(false);
447
- break;
448
- case 'scrollToOffset':
449
- scrollRequestFromChild(true);
450
- break;
451
- case 'pageInfo':
452
- sendPageInfoToIframe(settings[iframeId] && settings[iframeId].iframe,iframeId);
453
- startPageInfoMonitor();
454
- break;
455
- case 'pageInfoStop':
456
- stopPageInfoMonitor();
457
- break;
458
- case 'inPageLink':
459
- findTarget(getMsgBody(9));
460
- break;
461
- case 'reset':
462
- resetIFrame(messageData);
463
- break;
464
- case 'init':
465
- resizeIFrame();
466
- callback('initCallback',messageData.iframe);
467
- break;
468
- default:
469
- resizeIFrame();
335
+ function actionMsg(){
336
+ switch(messageData.type){
337
+ case 'close':
338
+ closeIFrame(messageData.iframe);
339
+ break;
340
+ case 'message':
341
+ forwardMsgFromIFrame(getMsgBody(6));
342
+ break;
343
+ case 'scrollTo':
344
+ scrollRequestFromChild(false);
345
+ break;
346
+ case 'scrollToOffset':
347
+ scrollRequestFromChild(true);
348
+ break;
349
+ case 'inPageLink':
350
+ findTarget(getMsgBody(9));
351
+ break;
352
+ case 'reset':
353
+ resetIFrame(messageData);
354
+ break;
355
+ case 'init':
356
+ resizeIFrame();
357
+ settings[iframeID].initCallback(messageData.iframe);
358
+ break;
359
+ default:
360
+ resizeIFrame();
470
361
  }
471
362
  }
472
363
 
473
- function hasSettings(iframeId) {
364
+ function hasSettings(iframeID){
474
365
  var retBool = true;
475
366
 
476
- if (!settings[iframeId]) {
367
+ if (!settings[iframeID]){
477
368
  retBool = false;
478
- warn(messageData.type + ' No settings for ' + iframeId + '. Message was: ' + msg);
369
+ warn(messageData.type + ' No settings for ' + iframeID + '. Message was: ' + msg);
479
370
  }
480
371
 
481
372
  return retBool;
482
373
  }
483
374
 
484
- function iFrameReadyMsgReceived() {
485
- for (var iframeId in settings) {
486
- trigger('iFrame requested init',createOutgoingMsg(iframeId),document.getElementById(iframeId),iframeId);
487
- }
488
- }
489
-
490
- function firstRun() {
491
- if (settings[iframeId]) {
492
- settings[iframeId].firstRun = false;
493
- }
494
- }
495
-
496
- function clearWarningTimeout() {
497
- if (settings[iframeId]) {
498
- clearTimeout(settings[iframeId].msgTimeout);
499
- settings[iframeId].warningTimeout = 0;
500
- }
501
- }
502
-
503
375
  var
504
376
  msg = event.data,
505
377
  messageData = {},
506
- iframeId = null;
378
+ iframeID = null;
507
379
 
508
- if('[iFrameResizerChild]Ready' === msg) {
509
- iFrameReadyMsgReceived();
510
- } else if (isMessageForUs()) {
380
+ if (isMessageForUs()){
511
381
  messageData = processMsg();
512
- iframeId = logId = messageData.id;
513
- if (settings[iframeId]) {
514
- settings[iframeId].loaded = true;
515
- }
382
+ iframeID = messageData.id;
516
383
 
517
- if (!isMessageFromMetaParent() && hasSettings(iframeId)) {
518
- log(iframeId,'Received: '+msg);
384
+ if (!isMessageFromMetaParent() && hasSettings(iframeID)){
385
+ logEnabled = settings[iframeID].log;
386
+ log(' Received: '+msg);
519
387
 
520
- if ( checkIFrameExists() && isMessageFromIFrame() ) {
388
+ if ( checkIFrameExists() && isMessageFromIFrame() ){
521
389
  actionMsg();
390
+ firstRun = false;
522
391
  }
523
392
  }
524
- } else {
525
- info(iframeId,'Ignored: '+msg);
526
393
  }
527
-
528
394
  }
529
395
 
530
396
 
531
- function chkCallback(iframeId,funcName,val) {
532
- var
533
- func = null,
534
- retVal = null;
535
-
536
- if(settings[iframeId]) {
537
- func = settings[iframeId][funcName];
538
-
539
- if( 'function' === typeof func) {
540
- retVal = func(val);
541
- } else {
542
- throw new TypeError(funcName+' on iFrame['+iframeId+'] is not a function');
543
- }
544
- }
545
-
546
- return retVal;
547
- }
548
-
549
- function closeIFrame(iframe) {
550
- var iframeId = iframe.id;
551
-
552
- log(iframeId,'Removing iFrame: '+iframeId);
553
- if (iframe.parentNode) { iframe.parentNode.removeChild(iframe); }
554
- chkCallback(iframeId,'closedCallback',iframeId);
555
- log(iframeId,'--');
556
- delete settings[iframeId];
557
- }
558
-
559
- function getPagePosition(iframeId) {
560
- if(null === pagePosition) {
397
+ function getPagePosition (){
398
+ if(null === pagePosition){
561
399
  pagePosition = {
562
400
  x: (window.pageXOffset !== undefined) ? window.pageXOffset : document.documentElement.scrollLeft,
563
401
  y: (window.pageYOffset !== undefined) ? window.pageYOffset : document.documentElement.scrollTop
564
402
  };
565
- log(iframeId,'Get page position: '+pagePosition.x+','+pagePosition.y);
403
+ log(' Get page position: '+pagePosition.x+','+pagePosition.y);
566
404
  }
567
405
  }
568
406
 
569
- function setPagePosition(iframeId) {
570
- if(null !== pagePosition) {
407
+ function setPagePosition(){
408
+ if(null !== pagePosition){
571
409
  window.scrollTo(pagePosition.x,pagePosition.y);
572
- log(iframeId,'Set page position: '+pagePosition.x+','+pagePosition.y);
573
- unsetPagePosition();
410
+ log(' Set page position: '+pagePosition.x+','+pagePosition.y);
411
+ pagePosition = null;
574
412
  }
575
413
  }
576
414
 
577
- function unsetPagePosition() {
578
- pagePosition = null;
579
- }
580
-
581
- function resetIFrame(messageData) {
582
- function reset() {
415
+ function resetIFrame(messageData){
416
+ function reset(){
583
417
  setSize(messageData);
584
418
  trigger('reset','reset',messageData.iframe,messageData.id);
585
419
  }
586
420
 
587
- log(messageData.id,'Size reset requested by '+('init'===messageData.type?'host page':'iFrame'));
588
- getPagePosition(messageData.id);
589
- syncResize(reset,messageData,'reset');
421
+ log(' Size reset requested by '+('init'===messageData.type?'host page':'iFrame'));
422
+ getPagePosition();
423
+ syncResize(reset,messageData,'init');
590
424
  }
591
425
 
592
- function setSize(messageData) {
593
- function setDimension(dimension) {
426
+ function setSize(messageData){
427
+ function setDimension(dimension){
594
428
  messageData.iframe.style[dimension] = messageData[dimension] + 'px';
595
429
  log(
596
- messageData.id,
597
- 'IFrame (' + iframeId +
430
+ ' IFrame (' + iframeID +
598
431
  ') ' + dimension +
599
432
  ' set to ' + messageData[dimension] + 'px'
600
433
  );
601
434
  }
602
-
603
- function chkZero(dimension) {
604
- //FireFox sets dimension of hidden iFrames to zero.
605
- //So if we detect that set up an event to check for
606
- //when iFrame becomes visible.
607
-
608
- /* istanbul ignore next */ //Not testable in PhantomJS
609
- if (!hiddenCheckEnabled && '0' === messageData[dimension]) {
610
- hiddenCheckEnabled = true;
611
- log(iframeId,'Hidden iFrame detected, creating visibility listener');
612
- fixHiddenIFrames();
613
- }
614
- }
615
-
616
- function processDimension(dimension) {
617
- setDimension(dimension);
618
- chkZero(dimension);
619
- }
620
-
621
- var iframeId = messageData.iframe.id;
622
-
623
- if(settings[iframeId]) {
624
- if( settings[iframeId].sizeHeight) { processDimension('height'); }
625
- if( settings[iframeId].sizeWidth ) { processDimension('width'); }
626
- }
435
+ var iframeID = messageData.iframe.id;
436
+ if( settings[iframeID].sizeHeight) { setDimension('height'); }
437
+ if( settings[iframeID].sizeWidth ) { setDimension('width'); }
627
438
  }
628
439
 
629
- function syncResize(func,messageData,doNotSync) {
630
- /* istanbul ignore if */ //Not testable in PhantomJS
631
- if(doNotSync!==messageData.type && requestAnimationFrame) {
632
- log(messageData.id,'Requesting animation frame');
440
+ function syncResize(func,messageData,doNotSync){
441
+ if(doNotSync!==messageData.type && requestAnimationFrame){
442
+ log(' Requesting animation frame');
633
443
  requestAnimationFrame(func);
634
444
  } else {
635
445
  func();
636
446
  }
637
447
  }
638
448
 
639
- function trigger(calleeMsg, msg, iframe, id, noResponseWarning) {
640
- function postMessageToIFrame() {
641
- var target = settings[id] && settings[id].targetOrigin;
642
- log(id,'[' + calleeMsg + '] Sending msg to iframe['+id+'] ('+msg+') targetOrigin: '+target);
643
- iframe.contentWindow.postMessage( msgId + msg, target );
644
- }
645
-
646
- function iFrameNotFound() {
647
- warn(id,'[' + calleeMsg + '] IFrame('+id+') not found');
648
- }
649
-
650
- function chkAndSend() {
651
- if(iframe && 'contentWindow' in iframe && (null !== iframe.contentWindow)) { //Null test for PhantomJS
652
- postMessageToIFrame();
653
- } else {
654
- iFrameNotFound();
655
- }
656
- }
657
-
658
- function warnOnNoResponse() {
659
- function warning() {
660
- if (settings[id] && !settings[id].loaded && !errorShown) {
661
- errorShown = true;
662
- warn(id, 'IFrame has not responded within '+ settings[id].warningTimeout/1000 +' seconds. Check iFrameResizer.contentWindow.js has been loaded in iFrame. This message can be ingored if everything is working, or you can set the warningTimeout option to a higher value or zero to suppress this warning.');
663
- }
664
- }
665
-
666
- if (!!noResponseWarning && settings[id] && !!settings[id].warningTimeout) {
667
- settings[id].msgTimeout = setTimeout(warning, settings[id].warningTimeout);
668
- }
669
- }
670
-
671
- var errorShown = false;
672
-
673
- id = id || iframe.id;
674
-
675
- if(settings[id]) {
676
- chkAndSend();
677
- warnOnNoResponse();
449
+ function trigger(calleeMsg,msg,iframe,id){
450
+ if(iframe && iframe.contentWindow){
451
+ log('[' + calleeMsg + '] Sending msg to iframe ('+msg+')');
452
+ iframe.contentWindow.postMessage( msgId + msg, '*' );
453
+ } else {
454
+ warn('[' + calleeMsg + '] IFrame not found');
455
+ if(settings[id]) delete settings[id];
678
456
  }
679
-
680
457
  }
681
458
 
682
- function createOutgoingMsg(iframeId) {
683
- return iframeId +
684
- ':' + settings[iframeId].bodyMarginV1 +
685
- ':' + settings[iframeId].sizeWidth +
686
- ':' + settings[iframeId].log +
687
- ':' + settings[iframeId].interval +
688
- ':' + settings[iframeId].enablePublicMethods +
689
- ':' + settings[iframeId].autoResize +
690
- ':' + settings[iframeId].bodyMargin +
691
- ':' + settings[iframeId].heightCalculationMethod +
692
- ':' + settings[iframeId].bodyBackground +
693
- ':' + settings[iframeId].bodyPadding +
694
- ':' + settings[iframeId].tolerance +
695
- ':' + settings[iframeId].inPageLinks +
696
- ':' + settings[iframeId].resizeFrom +
697
- ':' + settings[iframeId].widthCalculationMethod;
698
- }
699
-
700
- function setupIFrame(iframe,options) {
701
- function setLimits() {
702
- function addStyle(style) {
703
- if ((Infinity !== settings[iframeId][style]) && (0 !== settings[iframeId][style])) {
704
- iframe.style[style] = settings[iframeId][style] + 'px';
705
- log(iframeId,'Set '+style+' = '+settings[iframeId][style]+'px');
706
- }
707
- }
708
459
 
709
- function chkMinMax(dimension) {
710
- if (settings[iframeId]['min'+dimension]>settings[iframeId]['max'+dimension]) {
711
- throw new Error('Value for min'+dimension+' can not be greater than max'+dimension);
460
+ function setupIFrame(options){
461
+ function setLimits(){
462
+ function addStyle(style){
463
+ if ((Infinity !== settings[iframeID][style]) && (0 !== settings[iframeID][style])){
464
+ iframe.style[style] = settings[iframeID][style] + 'px';
465
+ log(' Set '+style+' = '+settings[iframeID][style]+'px');
712
466
  }
713
467
  }
714
468
 
715
- chkMinMax('Height');
716
- chkMinMax('Width');
717
-
718
469
  addStyle('maxHeight');
719
470
  addStyle('minHeight');
720
471
  addStyle('maxWidth');
721
472
  addStyle('minWidth');
722
473
  }
723
474
 
724
- function newId() {
725
- var id = ((options && options.id) || defaults.id + count++);
726
- if (null !== document.getElementById(id)) {
727
- id = id + count++;
728
- }
729
- return id;
730
- }
731
-
732
- function ensureHasId(iframeId) {
733
- logId=iframeId;
734
- if (''===iframeId) {
735
- iframe.id = iframeId = newId();
475
+ function ensureHasId(iframeID){
476
+ if (''===iframeID){
477
+ iframe.id = iframeID = 'iFrameResizer' + count++;
736
478
  logEnabled = (options || {}).log;
737
- logId=iframeId;
738
- log(iframeId,'Added missing iframe ID: '+ iframeId +' (' + iframe.src + ')');
479
+ log(' Added missing iframe ID: '+ iframeID +' (' + iframe.src + ')');
739
480
  }
740
481
 
741
-
742
- return iframeId;
482
+ return iframeID;
743
483
  }
744
484
 
745
- function setScrolling() {
746
- log(iframeId,'IFrame scrolling ' + (settings[iframeId] && settings[iframeId].scrolling ? 'enabled' : 'disabled') + ' for ' + iframeId);
747
- iframe.style.overflow = false === (settings[iframeId] && settings[iframeId].scrolling) ? 'hidden' : 'auto';
748
- switch(settings[iframeId] && settings[iframeId].scrolling) {
749
- case true:
750
- iframe.scrolling = 'yes';
751
- break;
752
- case false:
753
- iframe.scrolling = 'no';
754
- break;
755
- default:
756
- iframe.scrolling = settings[iframeId] ? settings[iframeId].scrolling : 'no';
757
- }
485
+ function setScrolling(){
486
+ log(' IFrame scrolling ' + (settings[iframeID].scrolling ? 'enabled' : 'disabled') + ' for ' + iframeID);
487
+ iframe.style.overflow = false === settings[iframeID].scrolling ? 'hidden' : 'auto';
488
+ iframe.scrolling = false === settings[iframeID].scrolling ? 'no' : 'yes';
758
489
  }
759
490
 
760
491
  //The V1 iFrame script expects an int, where as in V2 expects a CSS
761
492
  //string value such as '1px 3em', so if we have an int for V2, set V1=V2
762
493
  //and then convert V2 to a string PX value.
763
- function setupBodyMarginValues() {
764
- if (('number'===typeof(settings[iframeId] && settings[iframeId].bodyMargin)) || ('0'===(settings[iframeId] && settings[iframeId].bodyMargin))) {
765
- settings[iframeId].bodyMarginV1 = settings[iframeId].bodyMargin;
766
- settings[iframeId].bodyMargin = '' + settings[iframeId].bodyMargin + 'px';
767
- }
768
- }
769
-
770
- function checkReset() {
771
- // Reduce scope of firstRun to function, because IE8's JS execution
772
- // context stack is borked and this value gets externally
773
- // changed midway through running this function!!!
774
- var
775
- firstRun = settings[iframeId] && settings[iframeId].firstRun,
776
- resetRequertMethod = settings[iframeId] && settings[iframeId].heightCalculationMethod in resetRequiredMethods;
777
-
778
- if (!firstRun && resetRequertMethod) {
779
- resetIFrame({iframe:iframe, height:0, width:0, type:'init'});
780
- }
781
- }
782
-
783
- function setupIFrameObject() {
784
- if(Function.prototype.bind && settings[iframeId]) { //Ignore unpolyfilled IE8.
785
- settings[iframeId].iframe.iFrameResizer = {
786
-
787
- close : closeIFrame.bind(null,settings[iframeId].iframe),
788
-
789
- resize : trigger.bind(null,'Window resize', 'resize', settings[iframeId].iframe),
790
-
791
- moveToAnchor : function(anchor) {
792
- trigger('Move to anchor','moveToAnchor:'+anchor, settings[iframeId].iframe,iframeId);
793
- },
794
-
795
- sendMessage : function(message) {
796
- message = JSON.stringify(message);
797
- trigger('Send Message','message:'+message, settings[iframeId].iframe, iframeId);
798
- }
799
- };
800
- }
801
- }
802
-
803
- //We have to call trigger twice, as we can not be sure if all
804
- //iframes have completed loading when this code runs. The
805
- //event listener also catches the page changing in the iFrame.
806
- function init(msg) {
807
- function iFrameLoaded() {
808
- trigger('iFrame.onload', msg, iframe, undefined , true);
809
- checkReset();
810
- }
811
-
812
- addEventListener(iframe,'load',iFrameLoaded);
813
- trigger('init', msg, iframe, undefined, true);
814
- }
815
-
816
- function checkOptions(options) {
817
- if ('object' !== typeof options) {
818
- throw new TypeError('Options is not an object');
819
- }
820
- }
821
-
822
- function copyOptions(options) {
823
- for (var option in defaults) {
824
- if (defaults.hasOwnProperty(option)) {
825
- settings[iframeId][option] = options.hasOwnProperty(option) ? options[option] : defaults[option];
494
+ function setupBodyMarginValues(){
495
+ if (('number'===typeof(settings[iframeID].bodyMargin)) || ('0'===settings[iframeID].bodyMargin)){
496
+ settings[iframeID].bodyMarginV1 = settings[iframeID].bodyMargin;
497
+ settings[iframeID].bodyMargin = '' + settings[iframeID].bodyMargin + 'px';
498
+ }
499
+ }
500
+
501
+ function createOutgoingMsg(){
502
+ return iframeID +
503
+ ':' + settings[iframeID].bodyMarginV1 +
504
+ ':' + settings[iframeID].sizeWidth +
505
+ ':' + settings[iframeID].log +
506
+ ':' + settings[iframeID].interval +
507
+ ':' + settings[iframeID].enablePublicMethods +
508
+ ':' + settings[iframeID].autoResize +
509
+ ':' + settings[iframeID].bodyMargin +
510
+ ':' + settings[iframeID].heightCalculationMethod +
511
+ ':' + settings[iframeID].bodyBackground +
512
+ ':' + settings[iframeID].bodyPadding +
513
+ ':' + settings[iframeID].tolerance +
514
+ ':' + settings[iframeID].enableInPageLinks +
515
+ ':' + settings[iframeID].resizeFrom;
516
+ }
517
+
518
+ function init(msg){
519
+ //We have to call trigger twice, as we can not be sure if all
520
+ //iframes have completed loading when this code runs. The
521
+ //event listener also catches the page changing in the iFrame.
522
+ addEventListener(iframe,'load',function(){
523
+ var fr = firstRun; // Reduce scope of var to function, because IE8's JS execution
524
+ // context stack is borked and this value gets externally
525
+ // changed midway through running this function.
526
+ trigger('iFrame.onload',msg,iframe);
527
+ if (!fr && settings[iframeID].heightCalculationMethod in resetRequiredMethods){
528
+ resetIFrame({
529
+ iframe:iframe,
530
+ height:0,
531
+ width:0,
532
+ type:'init'
533
+ });
826
534
  }
827
- }
535
+ });
536
+ trigger('init',msg,iframe);
828
537
  }
829
538
 
830
- function getTargetOrigin (remoteHost) {
831
- return ('' === remoteHost || 'file://' === remoteHost) ? '*' : remoteHost;
539
+ function checkOptions(options){
540
+ if ('object' !== typeof options){
541
+ throw new TypeError('Options is not an object.');
542
+ }
832
543
  }
833
544
 
834
- function processOptions(options) {
545
+ function processOptions(options){
835
546
  options = options || {};
836
- settings[iframeId] = {
837
- firstRun : true,
838
- iframe : iframe,
839
- remoteHost : iframe.src.split('/').slice(0,3).join('/')
840
- };
547
+ settings[iframeID] = {};
841
548
 
842
549
  checkOptions(options);
843
- copyOptions(options);
844
550
 
845
- if (settings[iframeId]) {
846
- settings[iframeId].targetOrigin = true === settings[iframeId].checkOrigin ? getTargetOrigin(settings[iframeId].remoteHost) : '*';
551
+ for (var option in defaults) {
552
+ if (defaults.hasOwnProperty(option)){
553
+ settings[iframeID][option] = options.hasOwnProperty(option) ? options[option] : defaults[option];
554
+ }
847
555
  }
848
- }
849
556
 
850
- function beenHere() {
851
- return (iframeId in settings && 'iFrameResizer' in iframe);
557
+ logEnabled = settings[iframeID].log;
852
558
  }
853
559
 
854
- var iframeId = ensureHasId(iframe.id);
855
-
856
- if (!beenHere()) {
857
- processOptions(options);
858
- setScrolling();
859
- setLimits();
860
- setupBodyMarginValues();
861
- init(createOutgoingMsg(iframeId));
862
- setupIFrameObject();
863
- } else {
864
- warn(iframeId,'Ignored iFrame, already setup.');
865
- }
560
+ var
561
+ /*jshint validthis:true */
562
+ iframe = this,
563
+ iframeID = ensureHasId(iframe.id);
564
+
565
+ processOptions(options);
566
+ setScrolling();
567
+ setLimits();
568
+ setupBodyMarginValues();
569
+ init(createOutgoingMsg());
866
570
  }
867
571
 
868
- function debouce(fn,time) {
869
- if (null === timer) {
870
- timer = setTimeout(function() {
572
+ function throttle(fn,time){
573
+ if (null === timer){
574
+ timer = setTimeout(function(){
871
575
  timer = null;
872
576
  fn();
873
577
  }, time);
874
578
  }
875
579
  }
876
580
 
877
- /* istanbul ignore next */ //Not testable in PhantomJS
878
- function fixHiddenIFrames() {
879
- function checkIFrames() {
880
- function checkIFrame(settingId) {
881
- function chkDimension(dimension) {
882
- return '0px' === (settings[settingId] && settings[settingId].iframe.style[dimension]);
883
- }
884
-
885
- function isVisible(el) {
886
- return (null !== el.offsetParent);
887
- }
888
-
889
- if (settings[settingId] && isVisible(settings[settingId].iframe) && (chkDimension('height') || chkDimension('width'))) {
890
- trigger('Visibility change', 'resize', settings[settingId].iframe, settingId);
581
+ function winResize(){
582
+ throttle(function(){
583
+ for (var iframeId in settings){
584
+ if('parent' === settings[iframeId].resizeFrom){
585
+ trigger('Window resize','resize',document.getElementById(iframeId),iframeId);
891
586
  }
892
587
  }
893
-
894
- for (var settingId in settings) {
895
- checkIFrame(settingId);
896
- }
897
- }
898
-
899
- function mutationObserved(mutations) {
900
- log('window','Mutation observed: ' + mutations[0].target + ' ' + mutations[0].type);
901
- debouce(checkIFrames,16);
902
- }
903
-
904
- function createMutationObserver() {
905
- var
906
- target = document.querySelector('body'),
907
-
908
- config = {
909
- attributes : true,
910
- attributeOldValue : false,
911
- characterData : true,
912
- characterDataOldValue : false,
913
- childList : true,
914
- subtree : true
915
- },
916
-
917
- observer = new MutationObserver(mutationObserved);
918
-
919
- observer.observe(target, config);
920
- }
921
-
922
- var MutationObserver = window.MutationObserver || window.WebKitMutationObserver;
923
-
924
- if (MutationObserver) createMutationObserver();
588
+ },66);
925
589
  }
926
590
 
591
+ function factory(){
927
592
 
928
- function resizeIFrames(event) {
929
- function resize() {
930
- sendTriggerMsg('Window '+event,'resize');
931
- }
932
-
933
- log('window','Trigger event: '+event);
934
- debouce(resize,16);
935
- }
936
-
937
- /* istanbul ignore next */ //Not testable in PhantomJS
938
- function tabVisible() {
939
- function resize() {
940
- sendTriggerMsg('Tab Visable','resize');
941
- }
942
-
943
- if('hidden' !== document.visibilityState) {
944
- log('document','Trigger event: Visiblity change');
945
- debouce(resize,16);
946
- }
947
- }
948
-
949
- function sendTriggerMsg(eventName,event) {
950
- function isIFrameResizeEnabled(iframeId) {
951
- return settings[iframeId] &&
952
- 'parent' === settings[iframeId].resizeFrom &&
953
- settings[iframeId].autoResize &&
954
- !settings[iframeId].firstRun;
955
- }
956
-
957
- for (var iframeId in settings) {
958
- if(isIFrameResizeEnabled(iframeId)) {
959
- trigger(eventName, event, document.getElementById(iframeId), iframeId);
960
- }
961
- }
962
- }
963
-
964
- function setupEventListeners() {
593
+ setupRequestAnimationFrame();
965
594
  addEventListener(window,'message',iFrameListener);
595
+ addEventListener(window,'resize', winResize);
966
596
 
967
- addEventListener(window,'resize', function() {resizeIFrames('resize');});
968
-
969
- addEventListener(document,'visibilitychange',tabVisible);
970
- addEventListener(document,'-webkit-visibilitychange',tabVisible); //Andriod 4.4
971
- addEventListener(window,'focusin',function() {resizeIFrames('focus');}); //IE8-9
972
- addEventListener(window,'focus',function() {resizeIFrames('focus');});
973
- }
974
-
975
-
976
- function factory() {
977
- function init(options,element) {
978
- function chkType() {
979
- if(!element.tagName) {
980
- throw new TypeError('Object is not a valid DOM element');
981
- } else if ('IFRAME' !== element.tagName.toUpperCase()) {
982
- throw new TypeError('Expected <IFRAME> tag, found <'+element.tagName+'>');
983
- }
984
- }
985
-
986
- if(element) {
987
- chkType();
988
- setupIFrame(element, options);
989
- iFrames.push(element);
990
- }
991
- }
992
-
993
- function warnDeprecatedOptions(options) {
994
- if (options && options.enablePublicMethods) {
995
- warn('enablePublicMethods option has been removed, public methods are now always available in the iFrame');
597
+ function init(element, options){
598
+ if(!element.tagName) {
599
+ throw new TypeError('Object is not a valid DOM element');
600
+ } else if ('IFRAME' !== element.tagName.toUpperCase()) {
601
+ throw new TypeError('Expected <IFRAME> tag, found <'+element.tagName+'>.');
602
+ } else {
603
+ setupIFrame.call(element, options);
996
604
  }
997
605
  }
998
606
 
999
- var iFrames;
1000
-
1001
- setupRequestAnimationFrame();
1002
- setupEventListeners();
1003
-
1004
- return function iFrameResizeF(options,target) {
1005
- iFrames = []; //Only return iFrames past in on this call
1006
-
1007
- warnDeprecatedOptions(options);
1008
-
1009
- switch (typeof(target)) {
1010
- case 'undefined':
1011
- case 'string':
1012
- Array.prototype.forEach.call(
1013
- document.querySelectorAll( target || 'iframe' ),
1014
- init.bind(undefined, options)
1015
- );
1016
- break;
1017
- case 'object':
1018
- init(options,target);
1019
- break;
1020
- default:
1021
- throw new TypeError('Unexpected data type ('+typeof(target)+')');
607
+ return function iFrameResizeF(options,target){
608
+ switch (typeof(target)){
609
+ case 'undefined':
610
+ case 'string':
611
+ Array.prototype.forEach.call( document.querySelectorAll( target || 'iframe' ), function (element) {
612
+ init(element, options);
613
+ });
614
+ break;
615
+ case 'object':
616
+ init(target, options);
617
+ break;
618
+ default:
619
+ throw new TypeError('Unexpected data type ('+typeof(target)+').');
1022
620
  }
1023
-
1024
- return iFrames;
1025
621
  };
1026
622
  }
1027
623
 
1028
- function createJQueryPublicMethod($) {
1029
- if (!$.fn) {
1030
- info('','Unable to bind to jQuery, it is not fully loaded.');
1031
- } else if (!$.fn.iFrameResize) {
1032
- $.fn.iFrameResize = function $iFrameResizeF(options) {
1033
- function init(index, element) {
1034
- setupIFrame(element, options);
1035
- }
1036
-
1037
- return this.filter('iframe').each(init).end();
1038
- };
1039
- }
624
+ function createJQueryPublicMethod($){
625
+ $.fn.iFrameResize = function $iFrameResizeF(options) {
626
+ return this.filter('iframe').each(function (index, element) {
627
+ setupIFrame.call(element, options);
628
+ }).end();
629
+ };
1040
630
  }
1041
631
 
1042
- if (window.jQuery) { createJQueryPublicMethod(window.jQuery); }
632
+ if (window.jQuery) { createJQueryPublicMethod(jQuery); }
1043
633
 
1044
634
  if (typeof define === 'function' && define.amd) {
1045
635
  define([],factory);
@@ -1049,4 +639,4 @@
1049
639
  window.iFrameResize = window.iFrameResize || factory();
1050
640
  }
1051
641
 
1052
- })();
642
+ })();