j1m_app 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (99) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE.md +21 -0
  3. data/README.md +41 -0
  4. data/_data/modules/default/j1_app-0.0.1/j1_iframe_resizer.yml +270 -0
  5. data/_data/resources/default/j1_app-0.0.1/resource.yml +22 -0
  6. data/assets/themes/j1/iframe_resizer/.npmignore +9 -0
  7. data/assets/themes/j1/iframe_resizer/.travis.yml +6 -0
  8. data/assets/themes/j1/iframe_resizer/CONTRIBUTING.md +86 -0
  9. data/assets/themes/j1/iframe_resizer/Iframe-resizer by davidjbradshaw.url +2 -0
  10. data/assets/themes/j1/iframe_resizer/LICENSE +21 -0
  11. data/assets/themes/j1/iframe_resizer/README.md +608 -0
  12. data/assets/themes/j1/iframe_resizer/bower.json +45 -0
  13. data/assets/themes/j1/iframe_resizer/example/frame.absolute.html +88 -0
  14. data/assets/themes/j1/iframe_resizer/example/frame.content.html +58 -0
  15. data/assets/themes/j1/iframe_resizer/example/frame.hover.html +51 -0
  16. data/assets/themes/j1/iframe_resizer/example/frame.nested.html +72 -0
  17. data/assets/themes/j1/iframe_resizer/example/frame.textarea.html +46 -0
  18. data/assets/themes/j1/iframe_resizer/example/frame.tolerance.html +79 -0
  19. data/assets/themes/j1/iframe_resizer/example/index.html +70 -0
  20. data/assets/themes/j1/iframe_resizer/example/two.html +71 -0
  21. data/assets/themes/j1/iframe_resizer/gruntfile.js +215 -0
  22. data/assets/themes/j1/iframe_resizer/iframeResizer.jquery.json +41 -0
  23. data/assets/themes/j1/iframe_resizer/index.js +4 -0
  24. data/assets/themes/j1/iframe_resizer/js/_client.js +1131 -0
  25. data/assets/themes/j1/iframe_resizer/js/_server.js +1126 -0
  26. data/assets/themes/j1/iframe_resizer/js/ie8.polyfils.js +85 -0
  27. data/assets/themes/j1/iframe_resizer/js/ie8.polyfils.map +1 -0
  28. data/assets/themes/j1/iframe_resizer/js/ie8.polyfils.min.js +4 -0
  29. data/assets/themes/j1/iframe_resizer/js/iframeResizer.contentWindow.js +1104 -0
  30. data/assets/themes/j1/iframe_resizer/js/iframeResizer.contentWindow.map +1 -0
  31. data/assets/themes/j1/iframe_resizer/js/iframeResizer.contentWindow.min.js +10 -0
  32. data/assets/themes/j1/iframe_resizer/js/iframeResizer.js +1007 -0
  33. data/assets/themes/j1/iframe_resizer/js/iframeResizer.js.modified +1004 -0
  34. data/assets/themes/j1/iframe_resizer/js/iframeResizer.map +1 -0
  35. data/assets/themes/j1/iframe_resizer/js/iframeResizer.min.js +9 -0
  36. data/assets/themes/j1/iframe_resizer/js/index.js +2 -0
  37. data/assets/themes/j1/iframe_resizer/karma.conf.js +92 -0
  38. data/assets/themes/j1/iframe_resizer/package.json +111 -0
  39. data/assets/themes/j1/iframe_resizer/spec/_initSpec.js +63 -0
  40. data/assets/themes/j1/iframe_resizer/spec/anchorSpec.js +62 -0
  41. data/assets/themes/j1/iframe_resizer/spec/childSpec.js +403 -0
  42. data/assets/themes/j1/iframe_resizer/spec/closeSpecSpec.js +44 -0
  43. data/assets/themes/j1/iframe_resizer/spec/getPageInfoSpec.js +32 -0
  44. data/assets/themes/j1/iframe_resizer/spec/initCssSpec.js +28 -0
  45. data/assets/themes/j1/iframe_resizer/spec/initDomSpec.js +27 -0
  46. data/assets/themes/j1/iframe_resizer/spec/initDoubleCallSpec.js +33 -0
  47. data/assets/themes/j1/iframe_resizer/spec/initErrorSpec.js +57 -0
  48. data/assets/themes/j1/iframe_resizer/spec/initJQuerySpec.js +29 -0
  49. data/assets/themes/j1/iframe_resizer/spec/initUndefinedDomSpec.js +25 -0
  50. data/assets/themes/j1/iframe_resizer/spec/javascripts/fixtures/iframe.html +2 -0
  51. data/assets/themes/j1/iframe_resizer/spec/javascripts/fixtures/iframe600.html +4 -0
  52. data/assets/themes/j1/iframe_resizer/spec/javascripts/fixtures/iframe600WithId.html +4 -0
  53. data/assets/themes/j1/iframe_resizer/spec/lib/common.js +59 -0
  54. data/assets/themes/j1/iframe_resizer/spec/parentSpec.js +88 -0
  55. data/assets/themes/j1/iframe_resizer/spec/resources/djb.jpg +0 -0
  56. data/assets/themes/j1/iframe_resizer/spec/resources/frame.content.html +176 -0
  57. data/assets/themes/j1/iframe_resizer/spec/resources/frame.lateload.html +33 -0
  58. data/assets/themes/j1/iframe_resizer/spec/resources/frame.nested.html +40 -0
  59. data/assets/themes/j1/iframe_resizer/spec/scrollSpec.js +53 -0
  60. data/assets/themes/j1/iframe_resizer/spec/sendMessageSpec.js +58 -0
  61. data/assets/themes/j1/iframe_resizer/spec/support/jasmine.json +9 -0
  62. data/assets/themes/j1/iframe_resizer/src/ie8.polyfils.js +64 -0
  63. data/assets/themes/j1/iframe_resizer/src/iframeResizer.contentWindow.js +1123 -0
  64. data/assets/themes/j1/iframe_resizer/src/iframeResizer.js +1002 -0
  65. data/assets/themes/j1/iframe_resizer/test-main.js +33 -0
  66. data/assets/themes/j1/iframe_resizer/test/_init.html +44 -0
  67. data/assets/themes/j1/iframe_resizer/test/_init_once.html +45 -0
  68. data/assets/themes/j1/iframe_resizer/test/_init_once_async.html +72 -0
  69. data/assets/themes/j1/iframe_resizer/test/background.html +47 -0
  70. data/assets/themes/j1/iframe_resizer/test/changePage.html +50 -0
  71. data/assets/themes/j1/iframe_resizer/test/close.html +44 -0
  72. data/assets/themes/j1/iframe_resizer/test/getId.html +44 -0
  73. data/assets/themes/j1/iframe_resizer/test/interval.html +56 -0
  74. data/assets/themes/j1/iframe_resizer/test/jqueryNoConflict.html +47 -0
  75. data/assets/themes/j1/iframe_resizer/test/lateImageLoad.html +90 -0
  76. data/assets/themes/j1/iframe_resizer/test/margin.html +73 -0
  77. data/assets/themes/j1/iframe_resizer/test/mutationObserver.html +63 -0
  78. data/assets/themes/j1/iframe_resizer/test/nested.html +46 -0
  79. data/assets/themes/j1/iframe_resizer/test/resize.contentWidth.html +51 -0
  80. data/assets/themes/j1/iframe_resizer/test/resize.width.html +63 -0
  81. data/assets/themes/j1/iframe_resizer/test/resources/djb.jpg +0 -0
  82. data/assets/themes/j1/iframe_resizer/test/resources/frame.content.html +191 -0
  83. data/assets/themes/j1/iframe_resizer/test/resources/frame.lateload.html +33 -0
  84. data/assets/themes/j1/iframe_resizer/test/resources/frame.nested.html +40 -0
  85. data/assets/themes/j1/iframe_resizer/test/resources/jquery.js +6 -0
  86. data/assets/themes/j1/iframe_resizer/test/resources/qunit.css +244 -0
  87. data/assets/themes/j1/iframe_resizer/test/resources/qunit.js +2212 -0
  88. data/assets/themes/j1/iframe_resizer/test/resources/require.js +2103 -0
  89. data/assets/themes/j1/iframe_resizer/test/resources/testLib.js +9 -0
  90. data/assets/themes/j1/iframe_resizer/test/scrolling.html +65 -0
  91. data/assets/themes/j1/iframe_resizer/test/sendMessage.html +61 -0
  92. data/assets/themes/j1/iframe_resizer/test/setHeightCalculationMethod.html +51 -0
  93. data/assets/themes/j1/iframe_resizer/test/size.html +64 -0
  94. data/assets/themes/j1/iframe_resizer/test/v1.html +189 -0
  95. data/exe/console +14 -0
  96. data/exe/setup +8 -0
  97. data/lib/j1m_app.rb +5 -0
  98. data/lib/j1m_app/version.rb +3 -0
  99. metadata +187 -0
@@ -0,0 +1,9 @@
1
+ function sendMessage(msg){
2
+ 'use strict';
3
+ //var msgId = '[iFrameSizerTest]:';
4
+
5
+ //document.getElementsByTagName('iframe')[0].contentWindow.postMessage( msgId + msg, '*' );
6
+
7
+ //console.log('Sending '+msg);
8
+ document.getElementsByTagName('iframe')[0].iFrameResizer.sendMessage(msg);
9
+ }
@@ -0,0 +1,65 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <title>QUnit LoadHide</title>
6
+ <link rel="stylesheet" href="resources/qunit.css">
7
+ </head>
8
+ <body>
9
+ <div id="qunit"></div>
10
+ <div id="qunit-fixture">
11
+
12
+ <div style="width:600px;">
13
+ <iframe src="resources/frame.content.html" width="100%" scrolling="no"></iframe>
14
+ </div>
15
+
16
+ </div>
17
+ <script src="resources/qunit.js"></script>
18
+ <script src="resources/jquery.js"></script>
19
+ <script src="../js/iframeResizer.min.js"></script>
20
+ <script>
21
+
22
+ 'use strict';
23
+ var msgId = '[iFrameSizerTest]:';
24
+
25
+ asyncTest( "scrolling not set", function() {
26
+ $('iframe').iFrameResize({
27
+ //log:true,
28
+ resizedCallback:function(messageData){
29
+ ok( true, 'Receive message back from iFrame.' );
30
+ ok( 'hidden' === messageData.iframe.style.overflow, 'iFrame overflow = ' + messageData.iframe.style.overflow + '. Expected \'hidden\'.' );
31
+ ok( 'no' === messageData.iframe.scrolling, 'iFrame scrolling = ' + messageData.iframe.scrolling + '. Expected \'no\'.' );
32
+ start();
33
+ }
34
+ });
35
+ });
36
+
37
+ asyncTest( "scrolling = false", function() {
38
+ $('iframe').iFrameResize({
39
+ //log:true,
40
+ scrolling:false,
41
+ resizedCallback:function(messageData){
42
+ ok( true, 'Receive message back from iFrame.' );
43
+ ok( 'hidden' === messageData.iframe.style.overflow, 'iFrame overflow = ' + messageData.iframe.style.overflow + '. Expected \'hidden\'.' );
44
+ ok( 'no' === messageData.iframe.scrolling, 'iFrame scrolling = ' + messageData.iframe.scrolling + '. Expected \'no\'.' );
45
+ start();
46
+ }
47
+ });
48
+ });
49
+
50
+ asyncTest( "scrolling = true", function() {
51
+ $('iframe').iFrameResize({
52
+ //log:true,
53
+ scrolling:true,
54
+ resizedCallback:function(messageData){
55
+ ok( true, 'Receive message back from iFrame.' );
56
+ ok( 'auto' === messageData.iframe.style.overflow, 'iFrame overflow = ' + messageData.iframe.style.overflow + '. Expected \'auto\'.' );
57
+ ok( 'yes' === messageData.iframe.scrolling, 'iFrame scrolling = ' + messageData.iframe.scrolling + '. Expected \'yes\'.' );
58
+ start();
59
+ }
60
+ });
61
+ });
62
+
63
+ </script>
64
+ </body>
65
+ </html>
@@ -0,0 +1,61 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <title>QUnit LoadHide</title>
6
+ <link rel="stylesheet" href="resources/qunit.css">
7
+ </head>
8
+ <body>
9
+ <div id="qunit"></div>
10
+ <div id="qunit-fixture">
11
+
12
+ <div style="width:600px;">
13
+ <iframe src="resources/frame.content.html" width="100%" scrolling="no"></iframe>
14
+ </div>
15
+
16
+ </div>
17
+ <script src="resources/qunit.js"></script>
18
+ <script src="resources/jquery.js"></script>
19
+ <script src="resources/testLib.js"></script>
20
+ <script src="../js/ie8.polyfils.min.js"></script>
21
+ <script src="../js/iframeResizer.min.js"></script>
22
+ <script>
23
+
24
+ 'use strict';
25
+ var
26
+ count = 0,
27
+ msgId = '[iFrameSizerTest]:';
28
+
29
+ asyncTest( "sendMessage (string)", function() {
30
+
31
+ iFrameResize({
32
+ //log:true,
33
+ resizedCallback:function(messageData){
34
+ ok( true, 'Receive init message back from iFrame.' );
35
+ sendMessage('chkSendMsg');
36
+ },
37
+ messageCallback:function(messageData){
38
+ ok( 'message: test string' === messageData.message, 'Receive string message back from iFrame via sendMessage function.' );
39
+ start();
40
+ }
41
+ });
42
+ });
43
+
44
+ asyncTest( "sendMessage (object)", function() {
45
+
46
+ iFrameResize({
47
+ //log:true,
48
+ resizedCallback:function(messageData){
49
+ ok( true, 'Receive init message back from iFrame.' );
50
+ sendMessage('chkSendObj');
51
+ },
52
+ messageCallback:function(messageData){
53
+ ok( 'test object' === messageData.message.message, 'Receive object message back from iFrame via sendMessage function.' );
54
+ start();
55
+ }
56
+ });
57
+ });
58
+
59
+ </script>
60
+ </body>
61
+ </html>
@@ -0,0 +1,51 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <title>QUnit LoadHide</title>
6
+ <link rel="stylesheet" href="resources/qunit.css">
7
+ </head>
8
+ <body>
9
+ <div id="qunit"></div>
10
+ <div id="qunit-fixture">
11
+
12
+ <div style="width:600px;">
13
+ <iframe src="resources/frame.content.html" width="100%" scrolling="no"></iframe>
14
+ </div>
15
+
16
+ </div>
17
+ <script src="resources/qunit.js"></script>
18
+ <script src="resources/jquery.js"></script>
19
+ <script src="resources/testLib.js"></script>
20
+ <script src="../js/ie8.polyfils.min.js"></script>
21
+ <script src="../js/iframeResizer.min.js"></script>
22
+ <script>
23
+
24
+ 'use strict';
25
+ var msgId = '[iFrameSizerTest]:';
26
+
27
+ asyncTest( "setHeightCalculationMethod", function() {
28
+
29
+ var callbackCounter = 0;
30
+
31
+ iFrameResize({
32
+ //log:true,
33
+ interval:0,
34
+ resizedCallback:function(messageData){
35
+
36
+ switch (''+(++callbackCounter)){
37
+ case '1':
38
+ sendMessage('setHeightCalculationMethod');
39
+ break;
40
+ default:
41
+ ok( true, 'iFrame detected content change');
42
+ start();
43
+ }
44
+
45
+ }
46
+ });
47
+ });
48
+
49
+ </script>
50
+ </body>
51
+ </html>
@@ -0,0 +1,64 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <title>QUnit LoadHide</title>
6
+ <link rel="stylesheet" href="resources/qunit.css">
7
+ </head>
8
+ <body>
9
+ <div id="qunit"></div>
10
+ <div id="qunit-fixture">
11
+
12
+ <div style="width:400px;">
13
+ <iframe src="resources/frame.content.html" width="100%" scrolling="no"></iframe>
14
+ </div>
15
+
16
+ </div>
17
+ <script src="resources/qunit.js"></script>
18
+ <script src="resources/jquery.js"></script>
19
+ <script src="../js/ie8.polyfils.min.js"></script>
20
+ <script src="../js/iframeResizer.min.js"></script>
21
+ <script src="resources/testLib.js"></script>
22
+ <script>
23
+
24
+ 'use strict';
25
+ var msgId = '[iFrameSizerTest]:';
26
+
27
+ asyncTest( "iFrame size Event", function() {
28
+
29
+ var callbackCounter = 0;
30
+
31
+ $('iframe').iFrameResize({
32
+ //log:true,
33
+ interval:0,
34
+ resizedCallback:function(messageData){
35
+ var msgType = 'size';
36
+
37
+ switch (''+(++callbackCounter)){
38
+ case '1':
39
+ sendMessage( msgType);
40
+ break;
41
+ case '2':
42
+ ok( msgType === messageData.type, 'Received '+messageData.type+' message back from iFrame. Expected '+msgType);
43
+ sendMessage('size100');
44
+ break;
45
+ case '3':
46
+ ok( msgType === messageData.type, 'Received '+messageData.type+' message back from iFrame. Expected '+msgType);
47
+ ok( '100' === messageData.height, 'Height received = 100');
48
+ //ok( 100 === $('iframe').height(), 'IFrame height = 100'); Works in phaatomJS, but not chrome!
49
+ sendMessage('size200300');
50
+ break;
51
+ case '4':
52
+ ok( msgType === messageData.type, 'Received '+messageData.type+' message back from iFrame. Expected '+msgType);
53
+ ok( '200' === messageData.height, 'Height received = 200');
54
+ ok( '300' === messageData.width, 'Width received = 300');
55
+ start();
56
+ }
57
+ }
58
+ });
59
+ });
60
+
61
+
62
+ </script>
63
+ </body>
64
+ </html>
@@ -0,0 +1,189 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <title>QUnit LoadHide</title>
6
+ <link rel="stylesheet" href="resources/qunit.css">
7
+ </head>
8
+ <body>
9
+ <div id="qunit"></div>
10
+ <div id="qunit-fixture">
11
+
12
+ <div style="width:600px;">
13
+ <iframe src="resources/frame.content.html" width="100%" scrolling="no"></iframe>
14
+ </div>
15
+
16
+ </div>
17
+ <script src="resources/qunit.js"></script>
18
+ <script src="resources/jquery.js"></script>
19
+ <script>
20
+ /*
21
+ * File: jquery.iframeSizer.js
22
+ * Desc: Force cross domain iframes to size to content.
23
+ * Requires: iframeSizer.contentWindow.js to be loaded into the target frame.
24
+ * Author: David J. Bradshaw - dave@bradshaw.net
25
+ * Date: 2013-06-14
26
+ */
27
+
28
+
29
+ (function($) {
30
+
31
+ var
32
+ msgId = '[iFrameSizer]', //Must match iframe msg ID
33
+ msgIdLen = msgId.length,
34
+ count = 0,
35
+ settings,
36
+ defaults = {
37
+ log: false,
38
+ contentWindowBodyMargin:8,
39
+ doHeight:true,
40
+ doWidth:false,
41
+ interval:0,
42
+ enablePublicMethods:false,
43
+ callback:function(){}
44
+ };
45
+
46
+ function setupRAF(){
47
+ var
48
+ vendors = ['moz', 'webkit', 'o', 'ms'],
49
+ x;
50
+
51
+ // Remove vendor prefixing if prefixed and break early if not
52
+ for (x = 0; x < vendors.length && !window.requestAnimationFrame; x += 1) {
53
+ window.requestAnimationFrame = window[vendors[x] + 'RequestAnimationFrame'];
54
+ }
55
+
56
+ // If not supported then just call callback
57
+ if (!window.requestAnimationFrame){
58
+ log(' RequestAnimationFrame not supported');
59
+ window.requestAnimationFrame = function(callback){
60
+ callback();
61
+ };
62
+ }
63
+
64
+ }
65
+
66
+ function log(msg){
67
+ if (window.console){
68
+ console.log(msgId + '[Host page]' + msg);
69
+ }
70
+ }
71
+
72
+ setupRAF();
73
+
74
+ $(window).on('message',function(event){
75
+ function receiver(msg) {
76
+ function resize(){
77
+ function setDimension(dimension){
78
+ window.requestAnimationFrame(function(){
79
+ messageData.iframe.style[dimension] = messageData[dimension] + 'px';
80
+ log( ' ' + messageData.iframe.id + ' ' + dimension + ' set to ' + messageData[dimension] + 'px');
81
+ });
82
+ }
83
+
84
+ if(settings.doHeight){
85
+ setDimension('height');
86
+ }
87
+
88
+ if(settings.doWidth){
89
+ setDimension('width');
90
+ }
91
+ }
92
+
93
+ function processMsg(){
94
+ var data = msg.substr(msgIdLen).split(':');
95
+
96
+ messageData = {
97
+ iframe: document.getElementById(data[0]),
98
+ height: data[1],
99
+ width: data[2]
100
+ };
101
+ }
102
+
103
+ var messageData = {};
104
+
105
+ //check message is for us.
106
+ if (msgId === msg.substr(0,msgIdLen)){
107
+ processMsg();
108
+ resize();
109
+ settings.callback(messageData,settings);
110
+ }
111
+ }
112
+
113
+ receiver(event.originalEvent.data);
114
+ });
115
+
116
+
117
+ $.fn.iFrameSizer = function(options){
118
+
119
+ settings = $.extend( {}, defaults, options );
120
+
121
+ return this.each(function(){
122
+ function isIframe(){
123
+ return iframe.contentWindow ? true : false;
124
+ }
125
+
126
+ //We have to call trigger twice, as we can not be sure if all
127
+ //iframes have completed loading when this code runs.
128
+ function init(){
129
+ iframe.style.overflow = 'hidden';
130
+ iframe.scrolling = 'no';
131
+
132
+ $(iframe).on('load',function(){
133
+ trigger('iFrame.onload');
134
+ });
135
+ trigger('init');
136
+ }
137
+
138
+ function trigger(calleeMsg){
139
+
140
+ function ensureHasId(){
141
+ if (''===iframe.id){
142
+ iframe.id = 'iFrameSizer' + count++;
143
+ log(' Added missing iframe ID: '+iframe.id);
144
+ }
145
+ }
146
+
147
+ function postMessageToIframe(){
148
+ var msg = iframe.id + ':' + settings.contentWindowBodyMargin + ':' + settings.doWidth + ':' +
149
+ settings.log + ':' + settings.interval + ':' + settings.enablePublicMethods;
150
+ log('[' + calleeMsg + '] Sending init msg to iframe ('+msg+')');
151
+ iframe.contentWindow.postMessage( msgId + msg, '*' );
152
+ }
153
+
154
+ ensureHasId();
155
+ postMessageToIframe();
156
+ }
157
+
158
+ var iframe = this;
159
+
160
+ if (isIframe()){
161
+ init();
162
+ }
163
+ });
164
+ };
165
+
166
+ })( window.jQuery );
167
+
168
+
169
+ </script>
170
+ <script>
171
+
172
+ 'use strict';
173
+ var msgId = '[iFrameSizerTest]:';
174
+
175
+ asyncTest( "postMessage Response", function() {
176
+
177
+ $('iframe').iFrameSizer({
178
+ callback:function(messageData){
179
+ //console.log('Receive message back from iFrame.')
180
+ ok( true, 'Receive message back from iFrame.' );
181
+ ok( '600' === messageData.width, 'iFrame width = 600.' );
182
+ start();
183
+ }
184
+ });
185
+ });
186
+
187
+ </script>
188
+ </body>
189
+ </html>
data/exe/console ADDED
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require "bundler/setup"
4
+ require "j1m_nav"
5
+
6
+ # You can add fixtures and/or initialization code here to make experimenting
7
+ # with your gem easier. You can also use a different console, if you like.
8
+
9
+ # (If you use this, don't forget to add pry to your Gemfile!)
10
+ # require "pry"
11
+ # Pry.start
12
+
13
+ require "irb"
14
+ IRB.start(__FILE__)