| 
				
			 | 
			
			
				@@ -20,6 +20,8 @@ import PropTypes from 'prop-types'; 
			 | 
		
	
		
			
			| 
				20
			 | 
			
				20
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				21
			 | 
			
				21
			 | 
			
			
				 import Immutable from 'immutable'; 
			 | 
		
	
		
			
			| 
				22
			 | 
			
				22
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				
			 | 
			
				23
			 | 
			
			
				+import { getScript, onHeightUpdated, DomMutationObserveScript } from './common.js'; 
			 | 
		
	
		
			
			| 
				
			 | 
			
				24
			 | 
			
			
				+ 
			 | 
		
	
		
			
			| 
				23
			 | 
			
				25
			 | 
			
			
				 const RCTAutoHeightWebView = requireNativeComponent('RCTAutoHeightWebView', AutoHeightWebView, { 
			 | 
		
	
		
			
			| 
				24
			 | 
			
				26
			 | 
			
			
				   nativeOnly: { 
			 | 
		
	
		
			
			| 
				25
			 | 
			
				27
			 | 
			
			
				     nativeOnly: { 
			 | 
		
	
	
		
			
			| 
				
			 | 
			
			
				@@ -72,27 +74,17 @@ export default class AutoHeightWebView extends PureComponent { 
			 | 
		
	
		
			
			| 
				72
			 | 
			
				74
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				73
			 | 
			
				75
			 | 
			
			
				   constructor(props) { 
			 | 
		
	
		
			
			| 
				74
			 | 
			
				76
			 | 
			
			
				     super(props); 
			 | 
		
	
		
			
			| 
				75
			 | 
			
				
			 | 
			
			
				-    this.onMessage = this.onMessage.bind(this); 
			 | 
		
	
		
			
			| 
				76
			 | 
			
				
			 | 
			
			
				-    if (this.props.enableAnimation) { 
			 | 
		
	
		
			
			| 
				77
			 | 
			
				
			 | 
			
			
				-      this.opacityAnimatedValue = new Animated.Value(0); 
			 | 
		
	
		
			
			| 
				78
			 | 
			
				
			 | 
			
			
				-    } 
			 | 
		
	
		
			
			| 
				79
			 | 
			
				
			 | 
			
			
				-    if (IsBelowKitKat) { 
			 | 
		
	
		
			
			| 
				80
			 | 
			
				
			 | 
			
			
				-      this.listenWebViewBridgeMessage = this.listenWebViewBridgeMessage.bind(this); 
			 | 
		
	
		
			
			| 
				81
			 | 
			
				
			 | 
			
			
				-    } 
			 | 
		
	
		
			
			| 
				82
			 | 
			
				
			 | 
			
			
				-    let initialScript = props.files ? this.appendFilesToHead(props.files, BaseScript) : BaseScript; 
			 | 
		
	
		
			
			| 
				83
			 | 
			
				
			 | 
			
			
				-    initialScript = props.customStyle ? this.appendStylesToHead(props.customStyle, initialScript) : initialScript; 
			 | 
		
	
		
			
			| 
				
			 | 
			
				77
			 | 
			
			
				+    props.enableAnimation && (this.opacityAnimatedValue = new Animated.Value(0)); 
			 | 
		
	
		
			
			| 
				84
			 | 
			
				78
			 | 
			
			
				     this.state = { 
			 | 
		
	
		
			
			| 
				85
			 | 
			
				79
			 | 
			
			
				       isChangingSource: false, 
			 | 
		
	
		
			
			| 
				86
			 | 
			
				80
			 | 
			
			
				       height: 0, 
			 | 
		
	
		
			
			| 
				87
			 | 
			
				81
			 | 
			
			
				       heightOffset: 0, 
			 | 
		
	
		
			
			| 
				88
			 | 
			
				
			 | 
			
			
				-      script: initialScript 
			 | 
		
	
		
			
			| 
				
			 | 
			
				82
			 | 
			
			
				+      script: getScript(props, BaseScript) 
			 | 
		
	
		
			
			| 
				89
			 | 
			
				83
			 | 
			
			
				     }; 
			 | 
		
	
		
			
			| 
				90
			 | 
			
				84
			 | 
			
			
				   } 
			 | 
		
	
		
			
			| 
				91
			 | 
			
				85
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				92
			 | 
			
				86
			 | 
			
			
				   componentWillMount() { 
			 | 
		
	
		
			
			| 
				93
			 | 
			
				
			 | 
			
			
				-    if (IsBelowKitKat) { 
			 | 
		
	
		
			
			| 
				94
			 | 
			
				
			 | 
			
			
				-      DeviceEventEmitter.addListener('webViewBridgeMessage', this.listenWebViewBridgeMessage); 
			 | 
		
	
		
			
			| 
				95
			 | 
			
				
			 | 
			
			
				-    } 
			 | 
		
	
		
			
			| 
				
			 | 
			
				87
			 | 
			
			
				+    IsBelowKitKat && DeviceEventEmitter.addListener('webViewBridgeMessage', this.listenWebViewBridgeMessage); 
			 | 
		
	
		
			
			| 
				96
			 | 
			
				88
			 | 
			
			
				   } 
			 | 
		
	
		
			
			| 
				97
			 | 
			
				89
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				98
			 | 
			
				90
			 | 
			
			
				   componentDidMount() { 
			 | 
		
	
	
		
			
			| 
				
			 | 
			
			
				@@ -116,27 +108,16 @@ export default class AutoHeightWebView extends PureComponent { 
			 | 
		
	
		
			
			| 
				116
			 | 
			
				108
			 | 
			
			
				         } 
			 | 
		
	
		
			
			| 
				117
			 | 
			
				109
			 | 
			
			
				       ); 
			 | 
		
	
		
			
			| 
				118
			 | 
			
				110
			 | 
			
			
				     } 
			 | 
		
	
		
			
			| 
				119
			 | 
			
				
			 | 
			
			
				-    let currentScript = BaseScript; 
			 | 
		
	
		
			
			| 
				120
			 | 
			
				
			 | 
			
			
				-    if (nextProps.files) { 
			 | 
		
	
		
			
			| 
				121
			 | 
			
				
			 | 
			
			
				-      currentScript = this.appendFilesToHead(nextProps.files, BaseScript); 
			 | 
		
	
		
			
			| 
				122
			 | 
			
				
			 | 
			
			
				-    } 
			 | 
		
	
		
			
			| 
				123
			 | 
			
				
			 | 
			
			
				-    currentScript = nextProps.customStyle 
			 | 
		
	
		
			
			| 
				124
			 | 
			
				
			 | 
			
			
				-      ? this.appendStylesToHead(nextProps.customStyle, currentScript) 
			 | 
		
	
		
			
			| 
				125
			 | 
			
				
			 | 
			
			
				-      : currentScript; 
			 | 
		
	
		
			
			| 
				126
			 | 
			
				
			 | 
			
			
				-    this.setState({ script: currentScript }); 
			 | 
		
	
		
			
			| 
				
			 | 
			
				111
			 | 
			
			
				+    this.setState({ script: getScript(nextProps, BaseScript) }); 
			 | 
		
	
		
			
			| 
				127
			 | 
			
				112
			 | 
			
			
				   } 
			 | 
		
	
		
			
			| 
				128
			 | 
			
				113
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				129
			 | 
			
				114
			 | 
			
			
				   componentWillUnmount() { 
			 | 
		
	
		
			
			| 
				130
			 | 
			
				115
			 | 
			
			
				     this.stopInterval(); 
			 | 
		
	
		
			
			| 
				131
			 | 
			
				
			 | 
			
			
				-    if (IsBelowKitKat) { 
			 | 
		
	
		
			
			| 
				132
			 | 
			
				
			 | 
			
			
				-      DeviceEventEmitter.removeListener('webViewBridgeMessage', this.listenWebViewBridgeMessage); 
			 | 
		
	
		
			
			| 
				133
			 | 
			
				
			 | 
			
			
				-    } 
			 | 
		
	
		
			
			| 
				
			 | 
			
				116
			 | 
			
			
				+    IsBelowKitKat && DeviceEventEmitter.removeListener('webViewBridgeMessage', this.listenWebViewBridgeMessage); 
			 | 
		
	
		
			
			| 
				134
			 | 
			
				117
			 | 
			
			
				   } 
			 | 
		
	
		
			
			| 
				135
			 | 
			
				118
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				136
			 | 
			
				119
			 | 
			
			
				   // below kitkat 
			 | 
		
	
		
			
			| 
				137
			 | 
			
				
			 | 
			
			
				-  listenWebViewBridgeMessage(body) { 
			 | 
		
	
		
			
			| 
				138
			 | 
			
				
			 | 
			
			
				-    this.onMessage(body.message); 
			 | 
		
	
		
			
			| 
				139
			 | 
			
				
			 | 
			
			
				-  } 
			 | 
		
	
		
			
			| 
				
			 | 
			
				120
			 | 
			
			
				+  listenWebViewBridgeMessage = body => this.onMessage(body.message); 
			 | 
		
	
		
			
			| 
				140
			 | 
			
				121
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				141
			 | 
			
				122
			 | 
			
			
				   // below kitkat 
			 | 
		
	
		
			
			| 
				142
			 | 
			
				123
			 | 
			
			
				   sendToWebView(message) { 
			 | 
		
	
	
		
			
			| 
				
			 | 
			
			
				@@ -169,84 +150,47 @@ export default class AutoHeightWebView extends PureComponent { 
			 | 
		
	
		
			
			| 
				169
			 | 
			
				150
			 | 
			
			
				     clearInterval(this.interval); 
			 | 
		
	
		
			
			| 
				170
			 | 
			
				151
			 | 
			
			
				   } 
			 | 
		
	
		
			
			| 
				171
			 | 
			
				152
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				172
			 | 
			
				
			 | 
			
			
				-  onHeightUpdated(height) { 
			 | 
		
	
		
			
			| 
				173
			 | 
			
				
			 | 
			
			
				-    if (this.props.onHeightUpdated) { 
			 | 
		
	
		
			
			| 
				174
			 | 
			
				
			 | 
			
			
				-      this.props.onHeightUpdated(height); 
			 | 
		
	
		
			
			| 
				175
			 | 
			
				
			 | 
			
			
				-    } 
			 | 
		
	
		
			
			| 
				176
			 | 
			
				
			 | 
			
			
				-  } 
			 | 
		
	
		
			
			| 
				177
			 | 
			
				
			 | 
			
			
				- 
			 | 
		
	
		
			
			| 
				178
			 | 
			
				
			 | 
			
			
				-  onMessage(e) { 
			 | 
		
	
		
			
			| 
				
			 | 
			
				153
			 | 
			
			
				+  onMessage = e => { 
			 | 
		
	
		
			
			| 
				179
			 | 
			
				154
			 | 
			
			
				     const height = parseInt(IsBelowKitKat ? e.nativeEvent.message : e.nativeEvent.data); 
			 | 
		
	
		
			
			| 
				180
			 | 
			
				155
			 | 
			
			
				     if (height) { 
			 | 
		
	
		
			
			| 
				181
			 | 
			
				
			 | 
			
			
				-      if (this.props.enableAnimation) { 
			 | 
		
	
		
			
			| 
				
			 | 
			
				156
			 | 
			
			
				+      const { enableAnimation, animationDuration, heightOffset } = this.props; 
			 | 
		
	
		
			
			| 
				
			 | 
			
				157
			 | 
			
			
				+      if (enableAnimation) { 
			 | 
		
	
		
			
			| 
				182
			 | 
			
				158
			 | 
			
			
				         this.opacityAnimatedValue.setValue(0); 
			 | 
		
	
		
			
			| 
				183
			 | 
			
				159
			 | 
			
			
				       } 
			 | 
		
	
		
			
			| 
				184
			 | 
			
				160
			 | 
			
			
				       this.stopInterval(); 
			 | 
		
	
		
			
			| 
				185
			 | 
			
				161
			 | 
			
			
				       this.setState( 
			 | 
		
	
		
			
			| 
				186
			 | 
			
				162
			 | 
			
			
				         { 
			 | 
		
	
		
			
			| 
				187
			 | 
			
				
			 | 
			
			
				-          heightOffset: this.props.heightOffset, 
			 | 
		
	
		
			
			| 
				
			 | 
			
				163
			 | 
			
			
				+          heightOffset, 
			 | 
		
	
		
			
			| 
				188
			 | 
			
				164
			 | 
			
			
				           height 
			 | 
		
	
		
			
			| 
				189
			 | 
			
				165
			 | 
			
			
				         }, 
			 | 
		
	
		
			
			| 
				190
			 | 
			
				166
			 | 
			
			
				         () => { 
			 | 
		
	
		
			
			| 
				191
			 | 
			
				
			 | 
			
			
				-          if (this.props.enableAnimation) { 
			 | 
		
	
		
			
			| 
				
			 | 
			
				167
			 | 
			
			
				+          if (enableAnimation) { 
			 | 
		
	
		
			
			| 
				192
			 | 
			
				168
			 | 
			
			
				             Animated.timing(this.opacityAnimatedValue, { 
			 | 
		
	
		
			
			| 
				193
			 | 
			
				169
			 | 
			
			
				               toValue: 1, 
			 | 
		
	
		
			
			| 
				194
			 | 
			
				
			 | 
			
			
				-              duration: this.props.animationDuration 
			 | 
		
	
		
			
			| 
				195
			 | 
			
				
			 | 
			
			
				-            }).start(() => this.onHeightUpdated(height)); 
			 | 
		
	
		
			
			| 
				
			 | 
			
				170
			 | 
			
			
				+              duration: animationDuration 
			 | 
		
	
		
			
			| 
				
			 | 
			
				171
			 | 
			
			
				+            }).start(() => onHeightUpdated(height, this.props)); 
			 | 
		
	
		
			
			| 
				196
			 | 
			
				172
			 | 
			
			
				           } else { 
			 | 
		
	
		
			
			| 
				197
			 | 
			
				
			 | 
			
			
				-            this.onHeightUpdated(height); 
			 | 
		
	
		
			
			| 
				
			 | 
			
				173
			 | 
			
			
				+            onHeightUpdated(height, this.props); 
			 | 
		
	
		
			
			| 
				198
			 | 
			
				174
			 | 
			
			
				           } 
			 | 
		
	
		
			
			| 
				199
			 | 
			
				175
			 | 
			
			
				         } 
			 | 
		
	
		
			
			| 
				200
			 | 
			
				176
			 | 
			
			
				       ); 
			 | 
		
	
		
			
			| 
				201
			 | 
			
				177
			 | 
			
			
				     } 
			 | 
		
	
		
			
			| 
				202
			 | 
			
				
			 | 
			
			
				-  } 
			 | 
		
	
		
			
			| 
				203
			 | 
			
				
			 | 
			
			
				- 
			 | 
		
	
		
			
			| 
				204
			 | 
			
				
			 | 
			
			
				-  appendFilesToHead(files, script) { 
			 | 
		
	
		
			
			| 
				205
			 | 
			
				
			 | 
			
			
				-    if (!files) { 
			 | 
		
	
		
			
			| 
				206
			 | 
			
				
			 | 
			
			
				-      return script; 
			 | 
		
	
		
			
			| 
				207
			 | 
			
				
			 | 
			
			
				-    } 
			 | 
		
	
		
			
			| 
				208
			 | 
			
				
			 | 
			
			
				-    return files.reduceRight( 
			 | 
		
	
		
			
			| 
				209
			 | 
			
				
			 | 
			
			
				-      (file, combinedScript) => ` 
			 | 
		
	
		
			
			| 
				210
			 | 
			
				
			 | 
			
			
				-      var link  = document.createElement('link'); 
			 | 
		
	
		
			
			| 
				211
			 | 
			
				
			 | 
			
			
				-      link.rel  = '${file.rel}'; 
			 | 
		
	
		
			
			| 
				212
			 | 
			
				
			 | 
			
			
				-      link.type = '${file.type}'; 
			 | 
		
	
		
			
			| 
				213
			 | 
			
				
			 | 
			
			
				-      link.href = '${file.href}'; 
			 | 
		
	
		
			
			| 
				214
			 | 
			
				
			 | 
			
			
				-      document.head.appendChild(link); 
			 | 
		
	
		
			
			| 
				215
			 | 
			
				
			 | 
			
			
				-      ${combinedScript} 
			 | 
		
	
		
			
			| 
				216
			 | 
			
				
			 | 
			
			
				-    `, 
			 | 
		
	
		
			
			| 
				217
			 | 
			
				
			 | 
			
			
				-      script 
			 | 
		
	
		
			
			| 
				218
			 | 
			
				
			 | 
			
			
				-    ); 
			 | 
		
	
		
			
			| 
				219
			 | 
			
				
			 | 
			
			
				-  } 
			 | 
		
	
		
			
			| 
				220
			 | 
			
				
			 | 
			
			
				- 
			 | 
		
	
		
			
			| 
				221
			 | 
			
				
			 | 
			
			
				-  appendStylesToHead(styles, script) { 
			 | 
		
	
		
			
			| 
				222
			 | 
			
				
			 | 
			
			
				-    if (!styles) { 
			 | 
		
	
		
			
			| 
				223
			 | 
			
				
			 | 
			
			
				-      return script; 
			 | 
		
	
		
			
			| 
				224
			 | 
			
				
			 | 
			
			
				-    } 
			 | 
		
	
		
			
			| 
				225
			 | 
			
				
			 | 
			
			
				-    // Escape any single quotes or newlines in the CSS with .replace() 
			 | 
		
	
		
			
			| 
				226
			 | 
			
				
			 | 
			
			
				-    const escaped = styles.replace(/\'/g, "\\'").replace(/\n/g, '\\n'); 
			 | 
		
	
		
			
			| 
				227
			 | 
			
				
			 | 
			
			
				-    return ` 
			 | 
		
	
		
			
			| 
				228
			 | 
			
				
			 | 
			
			
				-      var styleElement = document.createElement('style'); 
			 | 
		
	
		
			
			| 
				229
			 | 
			
				
			 | 
			
			
				-      var styleText = document.createTextNode('${escaped}'); 
			 | 
		
	
		
			
			| 
				230
			 | 
			
				
			 | 
			
			
				-      styleElement.appendChild(styleText); 
			 | 
		
	
		
			
			| 
				231
			 | 
			
				
			 | 
			
			
				-      document.head.appendChild(styleElement); 
			 | 
		
	
		
			
			| 
				232
			 | 
			
				
			 | 
			
			
				-      ${script} 
			 | 
		
	
		
			
			| 
				233
			 | 
			
				
			 | 
			
			
				-    `; 
			 | 
		
	
		
			
			| 
				234
			 | 
			
				
			 | 
			
			
				-  } 
			 | 
		
	
		
			
			| 
				
			 | 
			
				178
			 | 
			
			
				+  }; 
			 | 
		
	
		
			
			| 
				235
			 | 
			
				179
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				236
			 | 
			
				180
			 | 
			
			
				   onLoadingStart = event => { 
			 | 
		
	
		
			
			| 
				237
			 | 
			
				
			 | 
			
			
				-    var onLoadStart = this.props.onLoadStart; 
			 | 
		
	
		
			
			| 
				
			 | 
			
				181
			 | 
			
			
				+    const { onLoadStart } = this.props; 
			 | 
		
	
		
			
			| 
				238
			 | 
			
				182
			 | 
			
			
				     onLoadStart && onLoadStart(event); 
			 | 
		
	
		
			
			| 
				239
			 | 
			
				183
			 | 
			
			
				   }; 
			 | 
		
	
		
			
			| 
				240
			 | 
			
				184
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				241
			 | 
			
				185
			 | 
			
			
				   onLoadingError = event => { 
			 | 
		
	
		
			
			| 
				242
			 | 
			
				
			 | 
			
			
				-    var { onError, onLoadEnd } = this.props; 
			 | 
		
	
		
			
			| 
				
			 | 
			
				186
			 | 
			
			
				+    const { onError, onLoadEnd } = this.props; 
			 | 
		
	
		
			
			| 
				243
			 | 
			
				187
			 | 
			
			
				     onError && onError(event); 
			 | 
		
	
		
			
			| 
				244
			 | 
			
				188
			 | 
			
			
				     onLoadEnd && onLoadEnd(event); 
			 | 
		
	
		
			
			| 
				245
			 | 
			
				189
			 | 
			
			
				     console.warn('Encountered an error loading page', event.nativeEvent); 
			 | 
		
	
		
			
			| 
				246
			 | 
			
				190
			 | 
			
			
				   }; 
			 | 
		
	
		
			
			| 
				247
			 | 
			
				191
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				248
			 | 
			
				192
			 | 
			
			
				   onLoadingFinish = event => { 
			 | 
		
	
		
			
			| 
				249
			 | 
			
				
			 | 
			
			
				-    var { onLoad, onLoadEnd } = this.props; 
			 | 
		
	
		
			
			| 
				
			 | 
			
				193
			 | 
			
			
				+    const { onLoad, onLoadEnd } = this.props; 
			 | 
		
	
		
			
			| 
				250
			 | 
			
				194
			 | 
			
			
				     onLoad && onLoad(event); 
			 | 
		
	
		
			
			| 
				251
			 | 
			
				195
			 | 
			
			
				     onLoadEnd && onLoadEnd(event); 
			 | 
		
	
		
			
			| 
				252
			 | 
			
				196
			 | 
			
			
				   }; 
			 | 
		
	
	
		
			
			| 
				
			 | 
			
			
				@@ -324,14 +268,7 @@ const BaseScript = IsBelowKitKat 
			 | 
		
	
		
			
			| 
				324
			 | 
			
				268
			 | 
			
			
				         AutoHeightWebView.onMessage = function (message) { 
			 | 
		
	
		
			
			| 
				325
			 | 
			
				269
			 | 
			
			
				             AutoHeightWebView.send(String(document.body.offsetHeight)); 
			 | 
		
	
		
			
			| 
				326
			 | 
			
				270
			 | 
			
			
				         }; 
			 | 
		
	
		
			
			| 
				327
			 | 
			
				
			 | 
			
			
				-        MutationObserver = window.MutationObserver || window.WebKitMutationObserver; 
			 | 
		
	
		
			
			| 
				328
			 | 
			
				
			 | 
			
			
				-        var observer = new MutationObserver(function() { 
			 | 
		
	
		
			
			| 
				329
			 | 
			
				
			 | 
			
			
				-            AutoHeightWebView.send(String(document.body.offsetHeight)); 
			 | 
		
	
		
			
			| 
				330
			 | 
			
				
			 | 
			
			
				-        }); 
			 | 
		
	
		
			
			| 
				331
			 | 
			
				
			 | 
			
			
				-        observer.observe(document, { 
			 | 
		
	
		
			
			| 
				332
			 | 
			
				
			 | 
			
			
				-            subtree: true, 
			 | 
		
	
		
			
			| 
				333
			 | 
			
				
			 | 
			
			
				-            attributes: true 
			 | 
		
	
		
			
			| 
				334
			 | 
			
				
			 | 
			
			
				-        }); 
			 | 
		
	
		
			
			| 
				
			 | 
			
				271
			 | 
			
			
				+        ${DomMutationObserveScript} 
			 | 
		
	
		
			
			| 
				335
			 | 
			
				272
			 | 
			
			
				     } ()); 
			 | 
		
	
		
			
			| 
				336
			 | 
			
				273
			 | 
			
			
				     ` 
			 | 
		
	
		
			
			| 
				337
			 | 
			
				274
			 | 
			
			
				   : ` 
			 | 
		
	
	
		
			
			| 
				
			 | 
			
			
				@@ -339,13 +276,6 @@ const BaseScript = IsBelowKitKat 
			 | 
		
	
		
			
			| 
				339
			 | 
			
				276
			 | 
			
			
				         document.addEventListener('message', function (e) { 
			 | 
		
	
		
			
			| 
				340
			 | 
			
				277
			 | 
			
			
				             window.postMessage(String(document.body.offsetHeight)); 
			 | 
		
	
		
			
			| 
				341
			 | 
			
				278
			 | 
			
			
				         }); 
			 | 
		
	
		
			
			| 
				342
			 | 
			
				
			 | 
			
			
				-        MutationObserver = window.MutationObserver || window.WebKitMutationObserver; 
			 | 
		
	
		
			
			| 
				343
			 | 
			
				
			 | 
			
			
				-        var observer = new MutationObserver(function() { 
			 | 
		
	
		
			
			| 
				344
			 | 
			
				
			 | 
			
			
				-            window.postMessage(String(document.body.offsetHeight)); 
			 | 
		
	
		
			
			| 
				345
			 | 
			
				
			 | 
			
			
				-        }); 
			 | 
		
	
		
			
			| 
				346
			 | 
			
				
			 | 
			
			
				-        observer.observe(document, { 
			 | 
		
	
		
			
			| 
				347
			 | 
			
				
			 | 
			
			
				-            subtree: true, 
			 | 
		
	
		
			
			| 
				348
			 | 
			
				
			 | 
			
			
				-            attributes: true 
			 | 
		
	
		
			
			| 
				349
			 | 
			
				
			 | 
			
			
				-        }); 
			 | 
		
	
		
			
			| 
				
			 | 
			
				279
			 | 
			
			
				+        ${DomMutationObserveScript} 
			 | 
		
	
		
			
			| 
				350
			 | 
			
				280
			 | 
			
			
				     } ()); 
			 | 
		
	
		
			
			| 
				351
			 | 
			
				281
			 | 
			
			
				     `; 
			 |