opal-browser 0.1.0.beta1 → 0.3.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/.github/workflows/build.yml +95 -0
- data/.gitignore +3 -0
- data/.yardopts +1 -1
- data/Gemfile +22 -3
- data/LICENSE +20 -0
- data/README.md +200 -20
- data/Rakefile +29 -1
- data/config.ru +20 -2
- data/docs/polyfills.md +24 -0
- data/examples/2048/Gemfile +6 -0
- data/examples/2048/README.md +13 -0
- data/examples/2048/app/application.rb +169 -0
- data/examples/2048/config.ru +9 -0
- data/examples/canvas/Gemfile +6 -0
- data/examples/canvas/README.md +9 -0
- data/examples/canvas/app/application.rb +55 -0
- data/examples/canvas/config.ru +9 -0
- data/examples/component/Gemfile +6 -0
- data/examples/component/README.md +10 -0
- data/examples/component/app/application.rb +66 -0
- data/examples/component/config.ru +9 -0
- data/examples/integrations/README.md +24 -0
- data/examples/integrations/dynamic-rack-opal-sprockets-server/Gemfile +6 -0
- data/examples/integrations/dynamic-rack-opal-sprockets-server/README.md +16 -0
- data/examples/integrations/dynamic-rack-opal-sprockets-server/app/application.rb +6 -0
- data/examples/integrations/dynamic-rack-opal-sprockets-server/config.ru +9 -0
- data/examples/integrations/dynamic-roda-roda-sprockets/.gitignore +1 -0
- data/examples/integrations/dynamic-roda-roda-sprockets/Gemfile +7 -0
- data/examples/integrations/dynamic-roda-roda-sprockets/README.md +22 -0
- data/examples/integrations/dynamic-roda-roda-sprockets/Rakefile +4 -0
- data/examples/integrations/dynamic-roda-roda-sprockets/app/application.rb +6 -0
- data/examples/integrations/dynamic-roda-roda-sprockets/app.rb +32 -0
- data/examples/integrations/dynamic-roda-roda-sprockets/config.ru +3 -0
- data/examples/integrations/dynamic-roda-tilt/.gitignore +1 -0
- data/examples/integrations/dynamic-roda-tilt/Gemfile +8 -0
- data/examples/integrations/dynamic-roda-tilt/README.md +17 -0
- data/examples/integrations/dynamic-roda-tilt/Rakefile +6 -0
- data/examples/integrations/dynamic-roda-tilt/app/application.rb +6 -0
- data/examples/integrations/dynamic-roda-tilt/app.rb +50 -0
- data/examples/integrations/dynamic-roda-tilt/config.ru +3 -0
- data/examples/integrations/dynamic-sinatra-opal-sprockets-server/Gemfile +7 -0
- data/examples/integrations/dynamic-sinatra-opal-sprockets-server/README.md +16 -0
- data/examples/integrations/dynamic-sinatra-opal-sprockets-server/app/application.rb +6 -0
- data/examples/integrations/dynamic-sinatra-opal-sprockets-server/config.ru +29 -0
- data/examples/integrations/static-bash/.gitignore +2 -0
- data/examples/integrations/static-bash/Gemfile +3 -0
- data/examples/integrations/static-bash/README.md +8 -0
- data/examples/integrations/static-bash/app/application.rb +6 -0
- data/examples/integrations/static-bash/build.sh +4 -0
- data/examples/integrations/static-bash/index.html +10 -0
- data/examples/integrations/static-bash-opal-parser/.gitignore +3 -0
- data/examples/integrations/static-bash-opal-parser/Gemfile +3 -0
- data/examples/integrations/static-bash-opal-parser/README.md +10 -0
- data/examples/integrations/static-bash-opal-parser/build.sh +4 -0
- data/examples/integrations/static-bash-opal-parser/index.html +19 -0
- data/examples/integrations/static-rake/.gitignore +1 -0
- data/examples/integrations/static-rake/Gemfile +4 -0
- data/examples/integrations/static-rake/README.md +7 -0
- data/examples/integrations/static-rake/Rakefile +10 -0
- data/examples/integrations/static-rake/app/application.rb +6 -0
- data/examples/integrations/static-rake/index.html +9 -0
- data/examples/integrations/static-rake-guard/.gitignore +1 -0
- data/examples/integrations/static-rake-guard/Gemfile +6 -0
- data/examples/integrations/static-rake-guard/Guardfile +3 -0
- data/examples/integrations/static-rake-guard/README.md +10 -0
- data/examples/integrations/static-rake-guard/Rakefile +10 -0
- data/examples/integrations/static-rake-guard/app/application.rb +6 -0
- data/examples/integrations/static-rake-guard/index.html +9 -0
- data/examples/svg/.gitignore +1 -0
- data/examples/svg/Gemfile +4 -0
- data/examples/svg/README.md +7 -0
- data/examples/svg/Rakefile +10 -0
- data/examples/svg/app/application.rb +11 -0
- data/examples/svg/index.html +17 -0
- data/examples/svg/index.svg +6 -0
- data/index.html.erb +24 -0
- data/lib/opal-browser.rb +1 -0
- data/opal/browser/animation_frame.rb +92 -10
- data/opal/browser/audio/node.rb +121 -0
- data/opal/browser/audio/param_schedule.rb +43 -0
- data/opal/browser/audio.rb +66 -0
- data/opal/browser/blob.rb +94 -0
- data/opal/browser/canvas/data.rb +2 -12
- data/opal/browser/canvas/gradient.rb +1 -11
- data/opal/browser/canvas/style.rb +3 -11
- data/opal/browser/canvas/text.rb +1 -11
- data/opal/browser/canvas.rb +86 -28
- data/opal/browser/console.rb +6 -38
- data/opal/browser/cookies.rb +90 -27
- data/opal/browser/crypto.rb +79 -0
- data/opal/browser/css/declaration.rb +1 -6
- data/opal/browser/css/rule.rb +1 -1
- data/opal/browser/css/style_sheet.rb +2 -2
- data/opal/browser/css.rb +23 -7
- data/opal/browser/database/sql.rb +193 -0
- data/opal/browser/delay.rb +94 -0
- data/opal/browser/dom/attribute.rb +16 -9
- data/opal/browser/dom/builder.rb +35 -25
- data/opal/browser/dom/character_data.rb +43 -7
- data/opal/browser/dom/document.rb +171 -37
- data/opal/browser/dom/document_fragment.rb +18 -0
- data/opal/browser/dom/document_or_shadow_root.rb +19 -0
- data/opal/browser/dom/element/attributes.rb +111 -0
- data/opal/browser/dom/element/button.rb +31 -0
- data/opal/browser/dom/element/custom.rb +177 -0
- data/opal/browser/dom/element/data.rb +82 -0
- data/opal/browser/dom/element/editable.rb +47 -0
- data/opal/browser/dom/element/form.rb +38 -0
- data/opal/browser/dom/element/iframe.rb +37 -0
- data/opal/browser/dom/element/image.rb +25 -0
- data/opal/browser/dom/element/input.rb +48 -1
- data/opal/browser/dom/element/media.rb +17 -0
- data/opal/browser/dom/element/offset.rb +32 -10
- data/opal/browser/dom/element/position.rb +11 -2
- data/opal/browser/dom/element/scroll.rb +139 -20
- data/opal/browser/dom/element/select.rb +42 -0
- data/opal/browser/dom/element/size.rb +46 -0
- data/opal/browser/dom/element/template.rb +11 -0
- data/opal/browser/dom/element/textarea.rb +26 -0
- data/opal/browser/dom/element.rb +496 -168
- data/opal/browser/dom/mutation_observer.rb +69 -9
- data/opal/browser/dom/node.rb +270 -83
- data/opal/browser/dom/node_set.rb +74 -41
- data/opal/browser/dom/shadow_root.rb +12 -0
- data/opal/browser/dom/text.rb +18 -3
- data/opal/browser/dom.rb +40 -18
- data/opal/browser/effects.rb +180 -3
- data/opal/browser/event/all.rb +26 -0
- data/opal/browser/event/animation.rb +40 -0
- data/opal/browser/{dom/event → event}/audio_processing.rb +10 -6
- data/opal/browser/event/base.rb +461 -0
- data/opal/browser/event/before_unload.rb +17 -0
- data/opal/browser/event/clipboard.rb +37 -0
- data/opal/browser/event/close.rb +49 -0
- data/opal/browser/event/composition.rb +52 -0
- data/opal/browser/event/custom.rb +65 -0
- data/opal/browser/event/data_transfer.rb +95 -0
- data/opal/browser/event/device_light.rb +25 -0
- data/opal/browser/{dom/event → event}/device_motion.rb +21 -6
- data/opal/browser/event/device_orientation.rb +50 -0
- data/opal/browser/{dom/event → event}/device_proximity.rb +10 -6
- data/opal/browser/event/drag.rb +123 -0
- data/opal/browser/event/focus.rb +41 -0
- data/opal/browser/event/gamepad.rb +62 -0
- data/opal/browser/{dom/event → event}/hash_change.rb +10 -6
- data/opal/browser/event/keyboard.rb +128 -0
- data/opal/browser/event/message.rb +72 -0
- data/opal/browser/{dom/event → event}/mouse.rb +37 -32
- data/opal/browser/event/page_transition.rb +25 -0
- data/opal/browser/event/pop_state.rb +35 -0
- data/opal/browser/event/progress.rb +45 -0
- data/opal/browser/event/sensor.rb +17 -0
- data/opal/browser/{dom/event → event}/storage.rb +10 -6
- data/opal/browser/{dom/event → event}/touch.rb +14 -21
- data/opal/browser/event/ui.rb +38 -0
- data/opal/browser/{dom/event → event}/wheel.rb +6 -4
- data/opal/browser/event.rb +163 -0
- data/opal/browser/event_source.rb +7 -4
- data/opal/browser/form_data.rb +225 -0
- data/opal/browser/history.rb +53 -21
- data/opal/browser/http/binary.rb +1 -0
- data/opal/browser/http/headers.rb +21 -2
- data/opal/browser/http/request.rb +83 -55
- data/opal/browser/http/response.rb +5 -1
- data/opal/browser/http.rb +47 -9
- data/opal/browser/immediate.rb +128 -10
- data/opal/browser/interval.rb +41 -23
- data/opal/browser/location.rb +20 -4
- data/opal/browser/navigator.rb +136 -13
- data/opal/browser/polyfill/visual_viewport.rb +216 -0
- data/opal/browser/screen.rb +34 -8
- data/opal/browser/setup/base.rb +6 -0
- data/opal/browser/setup/full.rb +13 -0
- data/opal/browser/setup/large.rb +17 -0
- data/opal/browser/setup/mini.rb +8 -0
- data/opal/browser/setup/traditional.rb +10 -0
- data/opal/browser/socket.rb +16 -8
- data/opal/browser/storage.rb +155 -52
- data/opal/browser/support.rb +299 -0
- data/opal/browser/utils.rb +116 -18
- data/opal/browser/version.rb +1 -1
- data/opal/browser/visual_viewport.rb +39 -0
- data/opal/browser/window/size.rb +47 -9
- data/opal/browser/window/view.rb +37 -4
- data/opal/browser/window.rb +46 -26
- data/opal/browser.rb +1 -10
- data/opal/opal-browser.rb +1 -0
- data/opal-browser.gemspec +10 -12
- data/spec/database/sql_spec.rb +139 -0
- data/spec/delay_spec.rb +41 -0
- data/spec/dom/attribute_spec.rb +49 -0
- data/spec/dom/builder_spec.rb +36 -19
- data/spec/dom/document_spec.rb +28 -6
- data/spec/dom/element/attributes_spec.rb +52 -0
- data/spec/dom/element/custom_spec.rb +106 -0
- data/spec/dom/element/subclass_spec.rb +144 -0
- data/spec/dom/element_spec.rb +184 -7
- data/spec/dom/mutation_observer_spec.rb +13 -9
- data/spec/dom/node_set_spec.rb +44 -0
- data/spec/dom/node_spec.rb +87 -27
- data/spec/dom_spec.rb +19 -9
- data/spec/event_source_spec.rb +18 -15
- data/spec/{dom/event_spec.rb → event_spec.rb} +55 -26
- data/spec/history_spec.rb +32 -19
- data/spec/http_spec.rb +25 -36
- data/spec/immediate_spec.rb +10 -7
- data/spec/interval_spec.rb +59 -0
- data/spec/native_cached_wrapper_spec.rb +46 -0
- data/spec/runner.rb +107 -0
- data/spec/socket_spec.rb +18 -14
- data/spec/spec_helper.rb +2 -4
- data/spec/spec_helper_promise.rb.erb +25 -0
- data/spec/storage_spec.rb +7 -7
- data/spec/wgxpath.install.js +49 -0
- data/spec/window_spec.rb +2 -2
- metadata +181 -93
- data/opal/browser/compatibility/animation_frame.rb +0 -93
- data/opal/browser/compatibility/dom/document/window.rb +0 -15
- data/opal/browser/compatibility/dom/element/css.rb +0 -15
- data/opal/browser/compatibility/dom/element/matches.rb +0 -31
- data/opal/browser/compatibility/dom/element/offset.rb +0 -20
- data/opal/browser/compatibility/dom/element/scroll.rb +0 -25
- data/opal/browser/compatibility/dom/element/style.rb +0 -15
- data/opal/browser/compatibility/dom/mutation_observer.rb +0 -47
- data/opal/browser/compatibility/http/request.rb +0 -15
- data/opal/browser/compatibility/immediate.rb +0 -107
- data/opal/browser/compatibility/window/scroll.rb +0 -27
- data/opal/browser/compatibility/window/size.rb +0 -13
- data/opal/browser/compatibility/window/view.rb +0 -13
- data/opal/browser/compatibility.rb +0 -59
- data/opal/browser/dom/compatibility.rb +0 -8
- data/opal/browser/dom/event/animation.rb +0 -26
- data/opal/browser/dom/event/base.rb +0 -207
- data/opal/browser/dom/event/before_unload.rb +0 -13
- data/opal/browser/dom/event/clipboard.rb +0 -26
- data/opal/browser/dom/event/close.rb +0 -35
- data/opal/browser/dom/event/composition.rb +0 -38
- data/opal/browser/dom/event/custom.rb +0 -30
- data/opal/browser/dom/event/device_light.rb +0 -21
- data/opal/browser/dom/event/device_orientation.rb +0 -36
- data/opal/browser/dom/event/drag.rb +0 -113
- data/opal/browser/dom/event/focus.rb +0 -23
- data/opal/browser/dom/event/gamepad.rb +0 -47
- data/opal/browser/dom/event/keyboard.rb +0 -93
- data/opal/browser/dom/event/message.rb +0 -50
- data/opal/browser/dom/event/page_transition.rb +0 -21
- data/opal/browser/dom/event/pop_state.rb +0 -21
- data/opal/browser/dom/event/progress.rb +0 -31
- data/opal/browser/dom/event/sensor.rb +0 -13
- data/opal/browser/dom/event/ui.rb +0 -22
- data/opal/browser/dom/event.rb +0 -240
- data/opal/browser/http/compatibility.rb +0 -1
- data/opal/browser/http/parameters.rb +0 -8
- data/opal/browser/timeout.rb +0 -60
- data/opal/browser/window/compatibility.rb +0 -3
- data/opal/browser/window/scroll.rb +0 -49
data/spec/storage_spec.rb
CHANGED
@@ -4,23 +4,23 @@ require 'browser/storage'
|
|
4
4
|
describe Browser::Window do
|
5
5
|
describe '#storage' do
|
6
6
|
it 'creates a new storage' do
|
7
|
-
$window.storage.
|
7
|
+
expect($window.storage).to be_a(Browser::Storage)
|
8
8
|
end
|
9
9
|
|
10
10
|
it 'creates a storage with the proper name' do
|
11
|
-
$window.storage.name.
|
12
|
-
$window.storage(:spec).name.
|
11
|
+
expect($window.storage.name).to eq(:default)
|
12
|
+
expect($window.storage(:spec).name).to eq(:spec)
|
13
13
|
end
|
14
14
|
end
|
15
15
|
|
16
16
|
describe '#session_storage' do
|
17
17
|
it 'creates a new session storage' do
|
18
|
-
$window.session_storage.
|
18
|
+
expect($window.session_storage).to be_a(Browser::SessionStorage)
|
19
19
|
end
|
20
20
|
|
21
21
|
it 'creates a session storage with the proper name' do
|
22
|
-
$window.session_storage.name.
|
23
|
-
$window.session_storage(:spec).name.
|
22
|
+
expect($window.session_storage.name).to eq(:default)
|
23
|
+
expect($window.session_storage(:spec).name).to eq(:spec)
|
24
24
|
end
|
25
|
-
end
|
25
|
+
end if Browser::SessionStorage.supported?
|
26
26
|
end
|
@@ -0,0 +1,49 @@
|
|
1
|
+
(function(){function h(a){return function(){return this[a]}}function k(a){return function(){return a}}var l=this;
|
2
|
+
function aa(a){var b=typeof a;if("object"==b)if(a){if(a instanceof Array)return"array";if(a instanceof Object)return b;var c=Object.prototype.toString.call(a);if("[object Window]"==c)return"object";if("[object Array]"==c||"number"==typeof a.length&&"undefined"!=typeof a.splice&&"undefined"!=typeof a.propertyIsEnumerable&&!a.propertyIsEnumerable("splice"))return"array";if("[object Function]"==c||"undefined"!=typeof a.call&&"undefined"!=typeof a.propertyIsEnumerable&&!a.propertyIsEnumerable("call"))return"function"}else return"null";
|
3
|
+
else if("function"==b&&"undefined"==typeof a.call)return"object";return b}function m(a){return"string"==typeof a}function ba(a,b,c){return a.call.apply(a.bind,arguments)}function ca(a,b,c){if(!a)throw Error();if(2<arguments.length){var d=Array.prototype.slice.call(arguments,2);return function(){var c=Array.prototype.slice.call(arguments);Array.prototype.unshift.apply(c,d);return a.apply(b,c)}}return function(){return a.apply(b,arguments)}}
|
4
|
+
function n(a,b,c){n=Function.prototype.bind&&-1!=Function.prototype.bind.toString().indexOf("native code")?ba:ca;return n.apply(null,arguments)}function da(a,b){var c=Array.prototype.slice.call(arguments,1);return function(){var b=c.slice();b.push.apply(b,arguments);return a.apply(this,b)}}function r(a){var b=s;function c(){}c.prototype=b.prototype;a.t=b.prototype;a.prototype=new c}
|
5
|
+
Function.prototype.bind=Function.prototype.bind||function(a,b){if(1<arguments.length){var c=Array.prototype.slice.call(arguments,1);c.unshift(this,a);return n.apply(null,c)}return n(this,a)};function t(a,b,c){this.a=a;this.b=b||1;this.d=c||1};var u,ea,fa,ga;function ha(){return l.navigator?l.navigator.userAgent:null}ga=fa=ea=u=!1;var w;if(w=ha()){var ia=l.navigator;u=0==w.lastIndexOf("Opera",0);ea=!u&&(-1!=w.indexOf("MSIE")||-1!=w.indexOf("Trident"));fa=!u&&-1!=w.indexOf("WebKit");ga=!u&&!fa&&!ea&&"Gecko"==ia.product}var y=ea,ja=ga,ka=fa;function la(){var a=l.document;return a?a.documentMode:void 0}var ma;
|
6
|
+
n:{var na="",oa;if(u&&l.opera)var pa=l.opera.version,na="function"==typeof pa?pa():pa;else if(ja?oa=/rv\:([^\);]+)(\)|;)/:y?oa=/\b(?:MSIE|rv)[: ]([^\);]+)(\)|;)/:ka&&(oa=/WebKit\/(\S+)/),oa)var qa=oa.exec(ha()),na=qa?qa[1]:"";if(y){var ra=la();if(ra>parseFloat(na)){ma=String(ra);break n}}ma=na}var sa=ma,ta={};
|
7
|
+
function ua(a){if(!ta[a]){for(var b=0,c=String(sa).replace(/^[\s\xa0]+|[\s\xa0]+$/g,"").split("."),d=String(a).replace(/^[\s\xa0]+|[\s\xa0]+$/g,"").split("."),e=Math.max(c.length,d.length),f=0;0==b&&f<e;f++){var g=c[f]||"",p=d[f]||"",q=RegExp("(\\d*)(\\D*)","g"),x=RegExp("(\\d*)(\\D*)","g");do{var v=q.exec(g)||["","",""],J=x.exec(p)||["","",""];if(0==v[0].length&&0==J[0].length)break;b=((0==v[1].length?0:parseInt(v[1],10))<(0==J[1].length?0:parseInt(J[1],10))?-1:(0==v[1].length?0:parseInt(v[1],10))>
|
8
|
+
(0==J[1].length?0:parseInt(J[1],10))?1:0)||((0==v[2].length)<(0==J[2].length)?-1:(0==v[2].length)>(0==J[2].length)?1:0)||(v[2]<J[2]?-1:v[2]>J[2]?1:0)}while(0==b)}ta[a]=0<=b}}var va=l.document,wa=va&&y?la()||("CSS1Compat"==va.compatMode?parseInt(sa,10):5):void 0;var z=y&&!(y&&9<=wa),xa=y&&!(y&&8<=wa);function A(a,b,c,d){this.a=a;this.nodeName=c;this.nodeValue=d;this.nodeType=2;this.parentNode=this.ownerElement=b}function ya(a,b){var c=xa&&"href"==b.nodeName?a.getAttribute(b.nodeName,2):b.nodeValue;return new A(b,a,b.nodeName,c)};function za(a){this.b=a;this.a=0}function Aa(a){a=a.match(Ba);for(var b=0;b<a.length;b++)Ca.test(a[b])&&a.splice(b,1);return new za(a)}var Ba=RegExp("\\$?(?:(?![0-9-])[\\w-]+:)?(?![0-9-])[\\w-]+|\\/\\/|\\.\\.|::|\\d+(?:\\.\\d*)?|\\.\\d+|\"[^\"]*\"|'[^']*'|[!<>]=|\\s+|.","g"),Ca=/^\s/;function B(a,b){return a.b[a.a+(b||0)]}function C(a){return a.b[a.a++]};var D=Array.prototype,Da=D.indexOf?function(a,b,c){return D.indexOf.call(a,b,c)}:function(a,b,c){c=null==c?0:0>c?Math.max(0,a.length+c):c;if(m(a))return m(b)&&1==b.length?a.indexOf(b,c):-1;for(;c<a.length;c++)if(c in a&&a[c]===b)return c;return-1},E=D.forEach?function(a,b,c){D.forEach.call(a,b,c)}:function(a,b,c){for(var d=a.length,e=m(a)?a.split(""):a,f=0;f<d;f++)f in e&&b.call(c,e[f],f,a)},Ea=D.filter?function(a,b,c){return D.filter.call(a,b,c)}:function(a,b,c){for(var d=a.length,e=[],f=0,g=m(a)?
|
9
|
+
a.split(""):a,p=0;p<d;p++)if(p in g){var q=g[p];b.call(c,q,p,a)&&(e[f++]=q)}return e},F=D.reduce?function(a,b,c,d){d&&(b=n(b,d));return D.reduce.call(a,b,c)}:function(a,b,c,d){var e=c;E(a,function(c,g){e=b.call(d,e,c,g,a)});return e},Fa=D.some?function(a,b,c){return D.some.call(a,b,c)}:function(a,b,c){for(var d=a.length,e=m(a)?a.split(""):a,f=0;f<d;f++)if(f in e&&b.call(c,e[f],f,a))return!0;return!1};
|
10
|
+
function Ga(a,b){var c;n:{c=a.length;for(var d=m(a)?a.split(""):a,e=0;e<c;e++)if(e in d&&b.call(void 0,d[e],e,a)){c=e;break n}c=-1}return 0>c?null:m(a)?a.charAt(c):a[c]}function Ha(a){return D.concat.apply(D,arguments)}function Ia(a,b,c){return 2>=arguments.length?D.slice.call(a,b):D.slice.call(a,b,c)};!ja&&!y||y&&y&&9<=wa||ja&&ua("1.9.1");y&&ua("9");function Ja(a,b){if(a.contains&&1==b.nodeType)return a==b||a.contains(b);if("undefined"!=typeof a.compareDocumentPosition)return a==b||Boolean(a.compareDocumentPosition(b)&16);for(;b&&a!=b;)b=b.parentNode;return b==a}
|
11
|
+
function Ka(a,b){if(a==b)return 0;if(a.compareDocumentPosition)return a.compareDocumentPosition(b)&2?1:-1;if(y&&!(y&&9<=wa)){if(9==a.nodeType)return-1;if(9==b.nodeType)return 1}if("sourceIndex"in a||a.parentNode&&"sourceIndex"in a.parentNode){var c=1==a.nodeType,d=1==b.nodeType;if(c&&d)return a.sourceIndex-b.sourceIndex;var e=a.parentNode,f=b.parentNode;return e==f?La(a,b):!c&&Ja(e,b)?-1*Ma(a,b):!d&&Ja(f,a)?Ma(b,a):(c?a.sourceIndex:e.sourceIndex)-(d?b.sourceIndex:f.sourceIndex)}d=9==a.nodeType?a:
|
12
|
+
a.ownerDocument||a.document;c=d.createRange();c.selectNode(a);c.collapse(!0);d=d.createRange();d.selectNode(b);d.collapse(!0);return c.compareBoundaryPoints(l.Range.START_TO_END,d)}function Ma(a,b){var c=a.parentNode;if(c==b)return-1;for(var d=b;d.parentNode!=c;)d=d.parentNode;return La(d,a)}function La(a,b){for(var c=b;c=c.previousSibling;)if(c==a)return-1;return 1};function G(a){var b=null,c=a.nodeType;1==c&&(b=a.textContent,b=void 0==b||null==b?a.innerText:b,b=void 0==b||null==b?"":b);if("string"!=typeof b)if(z&&"title"==a.nodeName.toLowerCase()&&1==c)b=a.text;else if(9==c||1==c){a=9==c?a.documentElement:a.firstChild;for(var c=0,d=[],b="";a;){do 1!=a.nodeType&&(b+=a.nodeValue),z&&"title"==a.nodeName.toLowerCase()&&(b+=a.text),d[c++]=a;while(a=a.firstChild);for(;c&&!(a=d[--c].nextSibling););}}else b=a.nodeValue;return""+b}
|
13
|
+
function H(a,b,c){if(null===b)return!0;try{if(!a.getAttribute)return!1}catch(d){return!1}xa&&"class"==b&&(b="className");return null==c?!!a.getAttribute(b):a.getAttribute(b,2)==c}function Na(a,b,c,d,e){return(z?Oa:Pa).call(null,a,b,m(c)?c:null,m(d)?d:null,e||new I)}
|
14
|
+
function Oa(a,b,c,d,e){if(a instanceof K||8==a.b||c&&null===a.b){var f=b.all;if(!f)return e;a=Qa(a);if("*"!=a&&(f=b.getElementsByTagName(a),!f))return e;if(c){for(var g=[],p=0;b=f[p++];)H(b,c,d)&&g.push(b);f=g}for(p=0;b=f[p++];)"*"==a&&"!"==b.tagName||L(e,b);return e}Ra(a,b,c,d,e);return e}
|
15
|
+
function Pa(a,b,c,d,e){b.getElementsByName&&d&&"name"==c&&!y?(b=b.getElementsByName(d),E(b,function(b){a.a(b)&&L(e,b)})):b.getElementsByClassName&&d&&"class"==c?(b=b.getElementsByClassName(d),E(b,function(b){b.className==d&&a.a(b)&&L(e,b)})):a instanceof M?Ra(a,b,c,d,e):b.getElementsByTagName&&(b=b.getElementsByTagName(a.d()),E(b,function(a){H(a,c,d)&&L(e,a)}));return e}
|
16
|
+
function Sa(a,b,c,d,e){var f;if((a instanceof K||8==a.b||c&&null===a.b)&&(f=b.childNodes)){var g=Qa(a);if("*"!=g&&(f=Ea(f,function(a){return a.tagName&&a.tagName.toLowerCase()==g}),!f))return e;c&&(f=Ea(f,function(a){return H(a,c,d)}));E(f,function(a){"*"==g&&("!"==a.tagName||"*"==g&&1!=a.nodeType)||L(e,a)});return e}return Ta(a,b,c,d,e)}function Ta(a,b,c,d,e){for(b=b.firstChild;b;b=b.nextSibling)H(b,c,d)&&a.a(b)&&L(e,b);return e}
|
17
|
+
function Ra(a,b,c,d,e){for(b=b.firstChild;b;b=b.nextSibling)H(b,c,d)&&a.a(b)&&L(e,b),Ra(a,b,c,d,e)}function Qa(a){if(a instanceof M){if(8==a.b)return"!";if(null===a.b)return"*"}return a.d()};function I(){this.b=this.a=null;this.i=0}function Ua(a){this.b=a;this.a=this.d=null}function Va(a,b){if(!a.a)return b;if(!b.a)return a;for(var c=a.a,d=b.a,e=null,f=null,g=0;c&&d;)c.b==d.b||c.b instanceof A&&d.b instanceof A&&c.b.a==d.b.a?(f=c,c=c.a,d=d.a):0<Ka(c.b,d.b)?(f=d,d=d.a):(f=c,c=c.a),(f.d=e)?e.a=f:a.a=f,e=f,g++;for(f=c||d;f;)f.d=e,e=e.a=f,g++,f=f.a;a.b=e;a.i=g;return a}function Wa(a,b){var c=new Ua(b);c.a=a.a;a.b?a.a.d=c:a.a=a.b=c;a.a=c;a.i++}
|
18
|
+
function L(a,b){var c=new Ua(b);c.d=a.b;a.a?a.b.a=c:a.a=a.b=c;a.b=c;a.i++}function Xa(a){return(a=a.a)?a.b:null}function Ya(a){return(a=Xa(a))?G(a):""}function N(a,b){return new Za(a,!!b)}function Za(a,b){this.d=a;this.b=(this.c=b)?a.b:a.a;this.a=null}function O(a){var b=a.b;if(null==b)return null;var c=a.a=b;a.b=a.c?b.d:b.a;return c.b};function $a(a){switch(a.nodeType){case 1:return da(ab,a);case 9:return $a(a.documentElement);case 2:return a.ownerElement?$a(a.ownerElement):bb;case 11:case 10:case 6:case 12:return bb;default:return a.parentNode?$a(a.parentNode):bb}}function bb(){return null}function ab(a,b){if(a.prefix==b)return a.namespaceURI||"http://www.w3.org/1999/xhtml";var c=a.getAttributeNode("xmlns:"+b);return c&&c.specified?c.value||null:a.parentNode&&9!=a.parentNode.nodeType?ab(a.parentNode,b):null};function s(a){this.g=a;this.b=this.f=!1;this.d=null}function P(a){return"\n "+a.toString().split("\n").join("\n ")}function cb(a,b){a.f=b}function db(a,b){a.b=b}function Q(a,b){var c=a.a(b);return c instanceof I?+Ya(c):+c}function R(a,b){var c=a.a(b);return c instanceof I?Ya(c):""+c}function S(a,b){var c=a.a(b);return c instanceof I?!!c.i:!!c};function eb(a,b,c){s.call(this,a.g);this.c=a;this.e=b;this.j=c;this.f=b.f||c.f;this.b=b.b||c.b;this.c==fb&&(c.b||c.f||4==c.g||0==c.g||!b.d?b.b||b.f||4==b.g||0==b.g||!c.d||(this.d={name:c.d.name,l:b}):this.d={name:b.d.name,l:c})}r(eb);
|
19
|
+
function T(a,b,c,d,e){b=b.a(d);c=c.a(d);var f;if(b instanceof I&&c instanceof I){e=N(b);for(d=O(e);d;d=O(e))for(b=N(c),f=O(b);f;f=O(b))if(a(G(d),G(f)))return!0;return!1}if(b instanceof I||c instanceof I){b instanceof I?e=b:(e=c,c=b);e=N(e);b=typeof c;for(d=O(e);d;d=O(e)){switch(b){case "number":d=+G(d);break;case "boolean":d=!!G(d);break;case "string":d=G(d);break;default:throw Error("Illegal primitive type for comparison.");}if(a(d,c))return!0}return!1}return e?"boolean"==typeof b||"boolean"==typeof c?
|
20
|
+
a(!!b,!!c):"number"==typeof b||"number"==typeof c?a(+b,+c):a(b,c):a(+b,+c)}eb.prototype.a=function(a){return this.c.k(this.e,this.j,a)};eb.prototype.toString=function(){var a="Binary Expression: "+this.c,a=a+P(this.e);return a+=P(this.j)};function gb(a,b,c,d){this.a=a;this.p=b;this.g=c;this.k=d}gb.prototype.toString=h("a");var hb={};function U(a,b,c,d){if(hb.hasOwnProperty(a))throw Error("Binary operator already created: "+a);a=new gb(a,b,c,d);return hb[a.toString()]=a}
|
21
|
+
U("div",6,1,function(a,b,c){return Q(a,c)/Q(b,c)});U("mod",6,1,function(a,b,c){return Q(a,c)%Q(b,c)});U("*",6,1,function(a,b,c){return Q(a,c)*Q(b,c)});U("+",5,1,function(a,b,c){return Q(a,c)+Q(b,c)});U("-",5,1,function(a,b,c){return Q(a,c)-Q(b,c)});U("<",4,2,function(a,b,c){return T(function(a,b){return a<b},a,b,c)});U(">",4,2,function(a,b,c){return T(function(a,b){return a>b},a,b,c)});U("<=",4,2,function(a,b,c){return T(function(a,b){return a<=b},a,b,c)});
|
22
|
+
U(">=",4,2,function(a,b,c){return T(function(a,b){return a>=b},a,b,c)});var fb=U("=",3,2,function(a,b,c){return T(function(a,b){return a==b},a,b,c,!0)});U("!=",3,2,function(a,b,c){return T(function(a,b){return a!=b},a,b,c,!0)});U("and",2,2,function(a,b,c){return S(a,c)&&S(b,c)});U("or",1,2,function(a,b,c){return S(a,c)||S(b,c)});function ib(a,b){if(b.a.length&&4!=a.g)throw Error("Primary expression must evaluate to nodeset if filter has predicate(s).");s.call(this,a.g);this.c=a;this.e=b;this.f=a.f;this.b=a.b}r(ib);ib.prototype.a=function(a){a=this.c.a(a);return jb(this.e,a)};ib.prototype.toString=function(){var a;a="Filter:"+P(this.c);return a+=P(this.e)};function kb(a,b){if(b.length<a.o)throw Error("Function "+a.h+" expects at least"+a.o+" arguments, "+b.length+" given");if(null!==a.n&&b.length>a.n)throw Error("Function "+a.h+" expects at most "+a.n+" arguments, "+b.length+" given");a.s&&E(b,function(b,d){if(4!=b.g)throw Error("Argument "+d+" to function "+a.h+" is not of type Nodeset: "+b);});s.call(this,a.g);this.e=a;this.c=b;cb(this,a.f||Fa(b,function(a){return a.f}));db(this,a.r&&!b.length||a.q&&!!b.length||Fa(b,function(a){return a.b}))}r(kb);
|
23
|
+
kb.prototype.a=function(a){return this.e.k.apply(null,Ha(a,this.c))};kb.prototype.toString=function(){var a="Function: "+this.e;if(this.c.length)var b=F(this.c,function(a,b){return a+P(b)},"Arguments:"),a=a+P(b);return a};function lb(a,b,c,d,e,f,g,p,q){this.h=a;this.g=b;this.f=c;this.r=d;this.q=e;this.k=f;this.o=g;this.n=void 0!==p?p:g;this.s=!!q}lb.prototype.toString=h("h");var mb={};
|
24
|
+
function V(a,b,c,d,e,f,g,p){if(mb.hasOwnProperty(a))throw Error("Function already created: "+a+".");mb[a]=new lb(a,b,c,d,!1,e,f,g,p)}V("boolean",2,!1,!1,function(a,b){return S(b,a)},1);V("ceiling",1,!1,!1,function(a,b){return Math.ceil(Q(b,a))},1);V("concat",3,!1,!1,function(a,b){var c=Ia(arguments,1);return F(c,function(b,c){return b+R(c,a)},"")},2,null);V("contains",2,!1,!1,function(a,b,c){b=R(b,a);a=R(c,a);return-1!=b.indexOf(a)},2);V("count",1,!1,!1,function(a,b){return b.a(a).i},1,1,!0);
|
25
|
+
V("false",2,!1,!1,k(!1),0);V("floor",1,!1,!1,function(a,b){return Math.floor(Q(b,a))},1);V("id",4,!1,!1,function(a,b){function c(a){if(z){var b=e.all[a];if(b){if(b.nodeType&&a==b.id)return b;if(b.length)return Ga(b,function(b){return a==b.id})}return null}return e.getElementById(a)}var d=a.a,e=9==d.nodeType?d:d.ownerDocument,d=R(b,a).split(/\s+/),f=[];E(d,function(a){a=c(a);!a||0<=Da(f,a)||f.push(a)});f.sort(Ka);var g=new I;E(f,function(a){L(g,a)});return g},1);V("lang",2,!1,!1,k(!1),1);
|
26
|
+
V("last",1,!0,!1,function(a){if(1!=arguments.length)throw Error("Function last expects ()");return a.d},0);V("local-name",3,!1,!0,function(a,b){var c=b?Xa(b.a(a)):a.a;return c?c.nodeName.toLowerCase():""},0,1,!0);V("name",3,!1,!0,function(a,b){var c=b?Xa(b.a(a)):a.a;return c?c.nodeName.toLowerCase():""},0,1,!0);V("namespace-uri",3,!0,!1,k(""),0,1,!0);V("normalize-space",3,!1,!0,function(a,b){return(b?R(b,a):G(a.a)).replace(/[\s\xa0]+/g," ").replace(/^\s+|\s+$/g,"")},0,1);
|
27
|
+
V("not",2,!1,!1,function(a,b){return!S(b,a)},1);V("number",1,!1,!0,function(a,b){return b?Q(b,a):+G(a.a)},0,1);V("position",1,!0,!1,function(a){return a.b},0);V("round",1,!1,!1,function(a,b){return Math.round(Q(b,a))},1);V("starts-with",2,!1,!1,function(a,b,c){b=R(b,a);a=R(c,a);return 0==b.lastIndexOf(a,0)},2);V("string",3,!1,!0,function(a,b){return b?R(b,a):G(a.a)},0,1);V("string-length",1,!1,!0,function(a,b){return(b?R(b,a):G(a.a)).length},0,1);
|
28
|
+
V("substring",3,!1,!1,function(a,b,c,d){c=Q(c,a);if(isNaN(c)||Infinity==c||-Infinity==c)return"";d=d?Q(d,a):Infinity;if(isNaN(d)||-Infinity===d)return"";c=Math.round(c)-1;var e=Math.max(c,0);a=R(b,a);if(Infinity==d)return a.substring(e);b=Math.round(d);return a.substring(e,c+b)},2,3);V("substring-after",3,!1,!1,function(a,b,c){b=R(b,a);a=R(c,a);c=b.indexOf(a);return-1==c?"":b.substring(c+a.length)},2);
|
29
|
+
V("substring-before",3,!1,!1,function(a,b,c){b=R(b,a);a=R(c,a);a=b.indexOf(a);return-1==a?"":b.substring(0,a)},2);V("sum",1,!1,!1,function(a,b){for(var c=N(b.a(a)),d=0,e=O(c);e;e=O(c))d+=+G(e);return d},1,1,!0);V("translate",3,!1,!1,function(a,b,c,d){b=R(b,a);c=R(c,a);var e=R(d,a);a=[];for(d=0;d<c.length;d++){var f=c.charAt(d);f in a||(a[f]=e.charAt(d))}c="";for(d=0;d<b.length;d++)f=b.charAt(d),c+=f in a?a[f]:f;return c},3);V("true",2,!1,!1,k(!0),0);function M(a,b){this.e=a;this.c=void 0!==b?b:null;this.b=null;switch(a){case "comment":this.b=8;break;case "text":this.b=3;break;case "processing-instruction":this.b=7;break;case "node":break;default:throw Error("Unexpected argument");}}function nb(a){return"comment"==a||"text"==a||"processing-instruction"==a||"node"==a}M.prototype.a=function(a){return null===this.b||this.b==a.nodeType};M.prototype.d=h("e");M.prototype.toString=function(){var a="Kind Test: "+this.e;null===this.c||(a+=P(this.c));return a};function ob(a){s.call(this,3);this.c=a.substring(1,a.length-1)}r(ob);ob.prototype.a=h("c");ob.prototype.toString=function(){return"Literal: "+this.c};function K(a,b){this.h=a.toLowerCase();this.c=b?b.toLowerCase():"http://www.w3.org/1999/xhtml"}K.prototype.a=function(a){var b=a.nodeType;return 1!=b&&2!=b?!1:"*"!=this.h&&this.h!=a.nodeName.toLowerCase()?!1:this.c==(a.namespaceURI?a.namespaceURI.toLowerCase():"http://www.w3.org/1999/xhtml")};K.prototype.d=h("h");K.prototype.toString=function(){return"Name Test: "+("http://www.w3.org/1999/xhtml"==this.c?"":this.c+":")+this.h};function pb(a){s.call(this,1);this.c=a}r(pb);pb.prototype.a=h("c");pb.prototype.toString=function(){return"Number: "+this.c};function qb(a,b){s.call(this,a.g);this.e=a;this.c=b;this.f=a.f;this.b=a.b;if(1==this.c.length){var c=this.c[0];c.m||c.c!=rb||(c=c.j,"*"!=c.d()&&(this.d={name:c.d(),l:null}))}}r(qb);function sb(){s.call(this,4)}r(sb);sb.prototype.a=function(a){var b=new I;a=a.a;9==a.nodeType?L(b,a):L(b,a.ownerDocument);return b};sb.prototype.toString=k("Root Helper Expression");function tb(){s.call(this,4)}r(tb);tb.prototype.a=function(a){var b=new I;L(b,a.a);return b};tb.prototype.toString=k("Context Helper Expression");
|
30
|
+
qb.prototype.a=function(a){var b=this.e.a(a);if(!(b instanceof I))throw Error("Filter expression must evaluate to nodeset.");a=this.c;for(var c=0,d=a.length;c<d&&b.i;c++){var e=a[c],f=N(b,e.c.a),g;if(e.f||e.c!=ub)if(e.f||e.c!=vb)for(g=O(f),b=e.a(new t(g));null!=(g=O(f));)g=e.a(new t(g)),b=Va(b,g);else g=O(f),b=e.a(new t(g));else{for(g=O(f);(b=O(f))&&(!g.contains||g.contains(b))&&b.compareDocumentPosition(g)&8;g=b);b=e.a(new t(g))}}return b};
|
31
|
+
qb.prototype.toString=function(){var a;a="Path Expression:"+P(this.e);if(this.c.length){var b=F(this.c,function(a,b){return a+P(b)},"Steps:");a+=P(b)}return a};function wb(a,b){this.a=a;this.b=!!b}
|
32
|
+
function jb(a,b,c){for(c=c||0;c<a.a.length;c++)for(var d=a.a[c],e=N(b),f=b.i,g,p=0;g=O(e);p++){var q=a.b?f-p:p+1;g=d.a(new t(g,q,f));if("number"==typeof g)q=q==g;else if("string"==typeof g||"boolean"==typeof g)q=!!g;else if(g instanceof I)q=0<g.i;else throw Error("Predicate.evaluate returned an unexpected type.");if(!q){q=e;g=q.d;var x=q.a;if(!x)throw Error("Next must be called at least once before remove.");var v=x.d,x=x.a;v?v.a=x:g.a=x;x?x.d=v:g.b=v;g.i--;q.a=null}}return b}
|
33
|
+
wb.prototype.toString=function(){return F(this.a,function(a,b){return a+P(b)},"Predicates:")};function W(a,b,c,d){s.call(this,4);this.c=a;this.j=b;this.e=c||new wb([]);this.m=!!d;b=0<this.e.a.length?this.e.a[0].d:null;a.b&&b&&(a=b.name,a=z?a.toLowerCase():a,this.d={name:a,l:b.l});n:{a=this.e;for(b=0;b<a.a.length;b++)if(c=a.a[b],c.f||1==c.g||0==c.g){a=!0;break n}a=!1}this.f=a}r(W);
|
34
|
+
W.prototype.a=function(a){var b=a.a,c=null,c=this.d,d=null,e=null,f=0;c&&(d=c.name,e=c.l?R(c.l,a):null,f=1);if(this.m)if(this.f||this.c!=xb)if(a=N((new W(yb,new M("node"))).a(a)),b=O(a))for(c=this.k(b,d,e,f);null!=(b=O(a));)c=Va(c,this.k(b,d,e,f));else c=new I;else c=Na(this.j,b,d,e),c=jb(this.e,c,f);else c=this.k(a.a,d,e,f);return c};W.prototype.k=function(a,b,c,d){a=this.c.d(this.j,a,b,c);return a=jb(this.e,a,d)};
|
35
|
+
W.prototype.toString=function(){var a;a="Step:"+P("Operator: "+(this.m?"//":"/"));this.c.h&&(a+=P("Axis: "+this.c));a+=P(this.j);if(this.e.a.length){var b=F(this.e.a,function(a,b){return a+P(b)},"Predicates:");a+=P(b)}return a};function zb(a,b,c,d){this.h=a;this.d=b;this.a=c;this.b=d}zb.prototype.toString=h("h");var Ab={};function X(a,b,c,d){if(Ab.hasOwnProperty(a))throw Error("Axis already created: "+a);b=new zb(a,b,c,!!d);return Ab[a]=b}
|
36
|
+
X("ancestor",function(a,b){for(var c=new I,d=b;d=d.parentNode;)a.a(d)&&Wa(c,d);return c},!0);X("ancestor-or-self",function(a,b){var c=new I,d=b;do a.a(d)&&Wa(c,d);while(d=d.parentNode);return c},!0);
|
37
|
+
var rb=X("attribute",function(a,b){var c=new I,d=a.d();if("style"==d&&b.style&&z)return L(c,new A(b.style,b,"style",b.style.cssText)),c;var e=b.attributes;if(e)if(a instanceof M&&null===a.b||"*"==d)for(var d=0,f;f=e[d];d++)z?f.nodeValue&&L(c,ya(b,f)):L(c,f);else(f=e.getNamedItem(d))&&(z?f.nodeValue&&L(c,ya(b,f)):L(c,f));return c},!1),xb=X("child",function(a,b,c,d,e){return(z?Sa:Ta).call(null,a,b,m(c)?c:null,m(d)?d:null,e||new I)},!1,!0);X("descendant",Na,!1,!0);
|
38
|
+
var yb=X("descendant-or-self",function(a,b,c,d){var e=new I;H(b,c,d)&&a.a(b)&&L(e,b);return Na(a,b,c,d,e)},!1,!0),ub=X("following",function(a,b,c,d){var e=new I;do for(var f=b;f=f.nextSibling;)H(f,c,d)&&a.a(f)&&L(e,f),e=Na(a,f,c,d,e);while(b=b.parentNode);return e},!1,!0);X("following-sibling",function(a,b){for(var c=new I,d=b;d=d.nextSibling;)a.a(d)&&L(c,d);return c},!1);X("namespace",function(){return new I},!1);
|
39
|
+
var Bb=X("parent",function(a,b){var c=new I;if(9==b.nodeType)return c;if(2==b.nodeType)return L(c,b.ownerElement),c;var d=b.parentNode;a.a(d)&&L(c,d);return c},!1),vb=X("preceding",function(a,b,c,d){var e=new I,f=[];do f.unshift(b);while(b=b.parentNode);for(var g=1,p=f.length;g<p;g++){var q=[];for(b=f[g];b=b.previousSibling;)q.unshift(b);for(var x=0,v=q.length;x<v;x++)b=q[x],H(b,c,d)&&a.a(b)&&L(e,b),e=Na(a,b,c,d,e)}return e},!0,!0);
|
40
|
+
X("preceding-sibling",function(a,b){for(var c=new I,d=b;d=d.previousSibling;)a.a(d)&&Wa(c,d);return c},!0);var Cb=X("self",function(a,b){var c=new I;a.a(b)&&L(c,b);return c},!1);function Db(a){s.call(this,1);this.c=a;this.f=a.f;this.b=a.b}r(Db);Db.prototype.a=function(a){return-Q(this.c,a)};Db.prototype.toString=function(){return"Unary Expression: -"+P(this.c)};function Eb(a){s.call(this,4);this.c=a;cb(this,Fa(this.c,function(a){return a.f}));db(this,Fa(this.c,function(a){return a.b}))}r(Eb);Eb.prototype.a=function(a){var b=new I;E(this.c,function(c){c=c.a(a);if(!(c instanceof I))throw Error("Path expression must evaluate to NodeSet.");b=Va(b,c)});return b};Eb.prototype.toString=function(){return F(this.c,function(a,b){return a+P(b)},"Union Expression:")};function Fb(a,b){this.a=a;this.b=b}function Gb(a){for(var b,c=[];;){Y(a,"Missing right hand side of binary expression.");b=Hb(a);var d=C(a.a);if(!d)break;var e=(d=hb[d]||null)&&d.p;if(!e){a.a.a--;break}for(;c.length&&e<=c[c.length-1].p;)b=new eb(c.pop(),c.pop(),b);c.push(b,d)}for(;c.length;)b=new eb(c.pop(),c.pop(),b);return b}function Y(a,b){if(a.a.b.length<=a.a.a)throw Error(b);}function Ib(a,b){var c=C(a.a);if(c!=b)throw Error("Bad token, expected: "+b+" got: "+c);}
|
41
|
+
function Jb(a){a=C(a.a);if(")"!=a)throw Error("Bad token: "+a);}function Kb(a){a=C(a.a);if(2>a.length)throw Error("Unclosed literal string");return new ob(a)}function Lb(a){var b=C(a.a),c=b.indexOf(":");if(-1==c)return new K(b);var d=b.substring(0,c);a=a.b(d);if(!a)throw Error("Namespace prefix not declared: "+d);b=b.substr(c+1);return new K(b,a)}
|
42
|
+
function Mb(a){var b,c=[],d;if("/"==B(a.a)||"//"==B(a.a)){b=C(a.a);d=B(a.a);if("/"==b&&(a.a.b.length<=a.a.a||"."!=d&&".."!=d&&"@"!=d&&"*"!=d&&!/(?![0-9])[\w]/.test(d)))return new sb;d=new sb;Y(a,"Missing next location step.");b=Nb(a,b);c.push(b)}else{n:{b=B(a.a);d=b.charAt(0);switch(d){case "$":throw Error("Variable reference not allowed in HTML XPath");case "(":C(a.a);b=Gb(a);Y(a,'unclosed "("');Ib(a,")");break;case '"':case "'":b=Kb(a);break;default:if(isNaN(+b))if(!nb(b)&&/(?![0-9])[\w]/.test(d)&&
|
43
|
+
"("==B(a.a,1)){b=C(a.a);b=mb[b]||null;C(a.a);for(d=[];")"!=B(a.a);){Y(a,"Missing function argument list.");d.push(Gb(a));if(","!=B(a.a))break;C(a.a)}Y(a,"Unclosed function argument list.");Jb(a);b=new kb(b,d)}else{b=null;break n}else b=new pb(+C(a.a))}"["==B(a.a)&&(d=new wb(Ob(a)),b=new ib(b,d))}if(b)if("/"==B(a.a)||"//"==B(a.a))d=b;else return b;else b=Nb(a,"/"),d=new tb,c.push(b)}for(;"/"==B(a.a)||"//"==B(a.a);)b=C(a.a),Y(a,"Missing next location step."),b=Nb(a,b),c.push(b);return new qb(d,c)}
|
44
|
+
function Nb(a,b){var c,d,e;if("/"!=b&&"//"!=b)throw Error('Step op should be "/" or "//"');if("."==B(a.a))return d=new W(Cb,new M("node")),C(a.a),d;if(".."==B(a.a))return d=new W(Bb,new M("node")),C(a.a),d;var f;if("@"==B(a.a))f=rb,C(a.a),Y(a,"Missing attribute name");else if("::"==B(a.a,1)){if(!/(?![0-9])[\w]/.test(B(a.a).charAt(0)))throw Error("Bad token: "+C(a.a));c=C(a.a);f=Ab[c]||null;if(!f)throw Error("No axis with name: "+c);C(a.a);Y(a,"Missing node name")}else f=xb;c=B(a.a);if(/(?![0-9])[\w]/.test(c.charAt(0)))if("("==
|
45
|
+
B(a.a,1)){if(!nb(c))throw Error("Invalid node type: "+c);c=C(a.a);if(!nb(c))throw Error("Invalid type name: "+c);Ib(a,"(");Y(a,"Bad nodetype");e=B(a.a).charAt(0);var g=null;if('"'==e||"'"==e)g=Kb(a);Y(a,"Bad nodetype");Jb(a);c=new M(c,g)}else c=Lb(a);else if("*"==c)c=Lb(a);else throw Error("Bad token: "+C(a.a));e=new wb(Ob(a),f.a);return d||new W(f,c,e,"//"==b)}
|
46
|
+
function Ob(a){for(var b=[];"["==B(a.a);){C(a.a);Y(a,"Missing predicate expression.");var c=Gb(a);b.push(c);Y(a,"Unclosed predicate expression.");Ib(a,"]")}return b}function Hb(a){if("-"==B(a.a))return C(a.a),new Db(Hb(a));var b=Mb(a);if("|"!=B(a.a))a=b;else{for(b=[b];"|"==C(a.a);)Y(a,"Missing next union location path."),b.push(Mb(a));a.a.a--;a=new Eb(b)}return a};function Pb(a,b){if(!a.length)throw Error("Empty XPath expression.");var c=Aa(a);if(c.b.length<=c.a)throw Error("Invalid XPath expression.");b?"function"==aa(b)||(b=n(b.lookupNamespaceURI,b)):b=k(null);var d=Gb(new Fb(c,b));if(!(c.b.length<=c.a))throw Error("Bad token: "+C(c));this.evaluate=function(a,b){var c=d.a(new t(a));return new Z(c,b)}}
|
47
|
+
function Z(a,b){if(0==b)if(a instanceof I)b=4;else if("string"==typeof a)b=2;else if("number"==typeof a)b=1;else if("boolean"==typeof a)b=3;else throw Error("Unexpected evaluation result.");if(2!=b&&1!=b&&3!=b&&!(a instanceof I))throw Error("value could not be converted to the specified type");this.resultType=b;var c;switch(b){case 2:this.stringValue=a instanceof I?Ya(a):""+a;break;case 1:this.numberValue=a instanceof I?+Ya(a):+a;break;case 3:this.booleanValue=a instanceof I?0<a.i:!!a;break;case 4:case 5:case 6:case 7:var d=
|
48
|
+
N(a);c=[];for(var e=O(d);e;e=O(d))c.push(e instanceof A?e.a:e);this.snapshotLength=a.i;this.invalidIteratorState=!1;break;case 8:case 9:d=Xa(a);this.singleNodeValue=d instanceof A?d.a:d;break;default:throw Error("Unknown XPathResult type.");}var f=0;this.iterateNext=function(){if(4!=b&&5!=b)throw Error("iterateNext called with wrong result type");return f>=c.length?null:c[f++]};this.snapshotItem=function(a){if(6!=b&&7!=b)throw Error("snapshotItem called with wrong result type");return a>=c.length||
|
49
|
+
0>a?null:c[a]}}Z.ANY_TYPE=0;Z.NUMBER_TYPE=1;Z.STRING_TYPE=2;Z.BOOLEAN_TYPE=3;Z.UNORDERED_NODE_ITERATOR_TYPE=4;Z.ORDERED_NODE_ITERATOR_TYPE=5;Z.UNORDERED_NODE_SNAPSHOT_TYPE=6;Z.ORDERED_NODE_SNAPSHOT_TYPE=7;Z.ANY_UNORDERED_NODE_TYPE=8;Z.FIRST_ORDERED_NODE_TYPE=9;function Qb(a){this.lookupNamespaceURI=$a(a)};function Rb(a){a=a||l;var b=a.document;b.evaluate||(a.XPathResult=Z,b.evaluate=function(a,b,e,f){return(new Pb(a,e)).evaluate(b,f)},b.createExpression=function(a,b){return new Pb(a,b)},b.createNSResolver=function(a){return new Qb(a)})}var Sb=["wgxpath","install"],$=l;Sb[0]in $||!$.execScript||$.execScript("var "+Sb[0]);for(var Tb;Sb.length&&(Tb=Sb.shift());)Sb.length||void 0===Rb?$=$[Tb]?$[Tb]:$[Tb]={}:$[Tb]=Rb;})()
|
data/spec/window_spec.rb
CHANGED
@@ -3,8 +3,8 @@ require 'spec_helper'
|
|
3
3
|
describe Browser::Window do
|
4
4
|
describe '#document' do
|
5
5
|
it 'should return `document`' do
|
6
|
-
$window.document.
|
7
|
-
$window.document.class.
|
6
|
+
expect($window.document).to eq(`document`)
|
7
|
+
expect($window.document.class).to eq(Browser::DOM::Document)
|
8
8
|
end
|
9
9
|
end
|
10
10
|
end
|
metadata
CHANGED
@@ -1,14 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: opal-browser
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1
|
4
|
+
version: 0.3.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- meh.
|
8
|
-
|
8
|
+
- hmdne
|
9
|
+
autorequire:
|
9
10
|
bindir: bin
|
10
11
|
cert_chain: []
|
11
|
-
date:
|
12
|
+
date: 2021-11-23 00:00:00.000000000 Z
|
12
13
|
dependencies:
|
13
14
|
- !ruby/object:Gem::Dependency
|
14
15
|
name: opal
|
@@ -16,191 +17,267 @@ dependencies:
|
|
16
17
|
requirements:
|
17
18
|
- - ">="
|
18
19
|
- !ruby/object:Gem::Version
|
19
|
-
version: 0
|
20
|
-
|
21
|
-
prerelease: false
|
22
|
-
version_requirements: !ruby/object:Gem::Requirement
|
23
|
-
requirements:
|
24
|
-
- - ">="
|
25
|
-
- !ruby/object:Gem::Version
|
26
|
-
version: 0.5.5
|
27
|
-
- !ruby/object:Gem::Dependency
|
28
|
-
name: paggio
|
29
|
-
requirement: !ruby/object:Gem::Requirement
|
30
|
-
requirements:
|
31
|
-
- - ">="
|
20
|
+
version: '1.0'
|
21
|
+
- - "<"
|
32
22
|
- !ruby/object:Gem::Version
|
33
|
-
version: '0'
|
23
|
+
version: '2.0'
|
34
24
|
type: :runtime
|
35
25
|
prerelease: false
|
36
26
|
version_requirements: !ruby/object:Gem::Requirement
|
37
27
|
requirements:
|
38
28
|
- - ">="
|
39
29
|
- !ruby/object:Gem::Version
|
40
|
-
version: '0'
|
41
|
-
-
|
42
|
-
name: opal-rspec
|
43
|
-
requirement: !ruby/object:Gem::Requirement
|
44
|
-
requirements:
|
45
|
-
- - ">="
|
46
|
-
- !ruby/object:Gem::Version
|
47
|
-
version: '0'
|
48
|
-
type: :development
|
49
|
-
prerelease: false
|
50
|
-
version_requirements: !ruby/object:Gem::Requirement
|
51
|
-
requirements:
|
52
|
-
- - ">="
|
30
|
+
version: '1.0'
|
31
|
+
- - "<"
|
53
32
|
- !ruby/object:Gem::Version
|
54
|
-
version: '0'
|
33
|
+
version: '2.0'
|
55
34
|
- !ruby/object:Gem::Dependency
|
56
|
-
name:
|
35
|
+
name: paggio
|
57
36
|
requirement: !ruby/object:Gem::Requirement
|
58
37
|
requirements:
|
59
38
|
- - ">="
|
60
39
|
- !ruby/object:Gem::Version
|
61
|
-
version:
|
62
|
-
type: :
|
40
|
+
version: 0.3.0
|
41
|
+
type: :runtime
|
63
42
|
prerelease: false
|
64
43
|
version_requirements: !ruby/object:Gem::Requirement
|
65
44
|
requirements:
|
66
45
|
- - ">="
|
67
46
|
- !ruby/object:Gem::Version
|
68
|
-
version:
|
69
|
-
description:
|
47
|
+
version: 0.3.0
|
48
|
+
description:
|
70
49
|
email: meh@schizofreni.co
|
71
50
|
executables: []
|
72
51
|
extensions: []
|
73
52
|
extra_rdoc_files: []
|
74
53
|
files:
|
54
|
+
- ".github/workflows/build.yml"
|
75
55
|
- ".gitignore"
|
76
56
|
- ".yardopts"
|
77
57
|
- Gemfile
|
58
|
+
- LICENSE
|
78
59
|
- README.md
|
79
60
|
- Rakefile
|
80
61
|
- config.ru
|
62
|
+
- docs/polyfills.md
|
63
|
+
- examples/2048/Gemfile
|
64
|
+
- examples/2048/README.md
|
65
|
+
- examples/2048/app/application.rb
|
66
|
+
- examples/2048/config.ru
|
67
|
+
- examples/canvas/Gemfile
|
68
|
+
- examples/canvas/README.md
|
69
|
+
- examples/canvas/app/application.rb
|
70
|
+
- examples/canvas/config.ru
|
71
|
+
- examples/component/Gemfile
|
72
|
+
- examples/component/README.md
|
73
|
+
- examples/component/app/application.rb
|
74
|
+
- examples/component/config.ru
|
75
|
+
- examples/integrations/README.md
|
76
|
+
- examples/integrations/dynamic-rack-opal-sprockets-server/Gemfile
|
77
|
+
- examples/integrations/dynamic-rack-opal-sprockets-server/README.md
|
78
|
+
- examples/integrations/dynamic-rack-opal-sprockets-server/app/application.rb
|
79
|
+
- examples/integrations/dynamic-rack-opal-sprockets-server/config.ru
|
80
|
+
- examples/integrations/dynamic-roda-roda-sprockets/.gitignore
|
81
|
+
- examples/integrations/dynamic-roda-roda-sprockets/Gemfile
|
82
|
+
- examples/integrations/dynamic-roda-roda-sprockets/README.md
|
83
|
+
- examples/integrations/dynamic-roda-roda-sprockets/Rakefile
|
84
|
+
- examples/integrations/dynamic-roda-roda-sprockets/app.rb
|
85
|
+
- examples/integrations/dynamic-roda-roda-sprockets/app/application.rb
|
86
|
+
- examples/integrations/dynamic-roda-roda-sprockets/config.ru
|
87
|
+
- examples/integrations/dynamic-roda-tilt/.gitignore
|
88
|
+
- examples/integrations/dynamic-roda-tilt/Gemfile
|
89
|
+
- examples/integrations/dynamic-roda-tilt/README.md
|
90
|
+
- examples/integrations/dynamic-roda-tilt/Rakefile
|
91
|
+
- examples/integrations/dynamic-roda-tilt/app.rb
|
92
|
+
- examples/integrations/dynamic-roda-tilt/app/application.rb
|
93
|
+
- examples/integrations/dynamic-roda-tilt/config.ru
|
94
|
+
- examples/integrations/dynamic-sinatra-opal-sprockets-server/Gemfile
|
95
|
+
- examples/integrations/dynamic-sinatra-opal-sprockets-server/README.md
|
96
|
+
- examples/integrations/dynamic-sinatra-opal-sprockets-server/app/application.rb
|
97
|
+
- examples/integrations/dynamic-sinatra-opal-sprockets-server/config.ru
|
98
|
+
- examples/integrations/static-bash-opal-parser/.gitignore
|
99
|
+
- examples/integrations/static-bash-opal-parser/Gemfile
|
100
|
+
- examples/integrations/static-bash-opal-parser/README.md
|
101
|
+
- examples/integrations/static-bash-opal-parser/build.sh
|
102
|
+
- examples/integrations/static-bash-opal-parser/index.html
|
103
|
+
- examples/integrations/static-bash/.gitignore
|
104
|
+
- examples/integrations/static-bash/Gemfile
|
105
|
+
- examples/integrations/static-bash/README.md
|
106
|
+
- examples/integrations/static-bash/app/application.rb
|
107
|
+
- examples/integrations/static-bash/build.sh
|
108
|
+
- examples/integrations/static-bash/index.html
|
109
|
+
- examples/integrations/static-rake-guard/.gitignore
|
110
|
+
- examples/integrations/static-rake-guard/Gemfile
|
111
|
+
- examples/integrations/static-rake-guard/Guardfile
|
112
|
+
- examples/integrations/static-rake-guard/README.md
|
113
|
+
- examples/integrations/static-rake-guard/Rakefile
|
114
|
+
- examples/integrations/static-rake-guard/app/application.rb
|
115
|
+
- examples/integrations/static-rake-guard/index.html
|
116
|
+
- examples/integrations/static-rake/.gitignore
|
117
|
+
- examples/integrations/static-rake/Gemfile
|
118
|
+
- examples/integrations/static-rake/README.md
|
119
|
+
- examples/integrations/static-rake/Rakefile
|
120
|
+
- examples/integrations/static-rake/app/application.rb
|
121
|
+
- examples/integrations/static-rake/index.html
|
122
|
+
- examples/svg/.gitignore
|
123
|
+
- examples/svg/Gemfile
|
124
|
+
- examples/svg/README.md
|
125
|
+
- examples/svg/Rakefile
|
126
|
+
- examples/svg/app/application.rb
|
127
|
+
- examples/svg/index.html
|
128
|
+
- examples/svg/index.svg
|
129
|
+
- index.html.erb
|
130
|
+
- lib/opal-browser.rb
|
81
131
|
- lib/opal/browser.rb
|
82
132
|
- opal-browser.gemspec
|
83
133
|
- opal/browser.rb
|
84
134
|
- opal/browser/animation_frame.rb
|
135
|
+
- opal/browser/audio.rb
|
136
|
+
- opal/browser/audio/node.rb
|
137
|
+
- opal/browser/audio/param_schedule.rb
|
138
|
+
- opal/browser/blob.rb
|
85
139
|
- opal/browser/canvas.rb
|
86
140
|
- opal/browser/canvas/data.rb
|
87
141
|
- opal/browser/canvas/gradient.rb
|
88
142
|
- opal/browser/canvas/style.rb
|
89
143
|
- opal/browser/canvas/text.rb
|
90
|
-
- opal/browser/compatibility.rb
|
91
|
-
- opal/browser/compatibility/animation_frame.rb
|
92
|
-
- opal/browser/compatibility/dom/document/window.rb
|
93
|
-
- opal/browser/compatibility/dom/element/css.rb
|
94
|
-
- opal/browser/compatibility/dom/element/matches.rb
|
95
|
-
- opal/browser/compatibility/dom/element/offset.rb
|
96
|
-
- opal/browser/compatibility/dom/element/scroll.rb
|
97
|
-
- opal/browser/compatibility/dom/element/style.rb
|
98
|
-
- opal/browser/compatibility/dom/mutation_observer.rb
|
99
|
-
- opal/browser/compatibility/http/request.rb
|
100
|
-
- opal/browser/compatibility/immediate.rb
|
101
|
-
- opal/browser/compatibility/window/scroll.rb
|
102
|
-
- opal/browser/compatibility/window/size.rb
|
103
|
-
- opal/browser/compatibility/window/view.rb
|
104
144
|
- opal/browser/console.rb
|
105
145
|
- opal/browser/cookies.rb
|
146
|
+
- opal/browser/crypto.rb
|
106
147
|
- opal/browser/css.rb
|
107
148
|
- opal/browser/css/declaration.rb
|
108
149
|
- opal/browser/css/rule.rb
|
109
150
|
- opal/browser/css/rule/style.rb
|
110
151
|
- opal/browser/css/style_sheet.rb
|
111
152
|
- opal/browser/css/unit.rb
|
153
|
+
- opal/browser/database/sql.rb
|
154
|
+
- opal/browser/delay.rb
|
112
155
|
- opal/browser/dom.rb
|
113
156
|
- opal/browser/dom/attribute.rb
|
114
157
|
- opal/browser/dom/builder.rb
|
115
158
|
- opal/browser/dom/cdata.rb
|
116
159
|
- opal/browser/dom/character_data.rb
|
117
160
|
- opal/browser/dom/comment.rb
|
118
|
-
- opal/browser/dom/compatibility.rb
|
119
161
|
- opal/browser/dom/document.rb
|
120
162
|
- opal/browser/dom/document_fragment.rb
|
163
|
+
- opal/browser/dom/document_or_shadow_root.rb
|
121
164
|
- opal/browser/dom/element.rb
|
165
|
+
- opal/browser/dom/element/attributes.rb
|
166
|
+
- opal/browser/dom/element/button.rb
|
167
|
+
- opal/browser/dom/element/custom.rb
|
168
|
+
- opal/browser/dom/element/data.rb
|
169
|
+
- opal/browser/dom/element/editable.rb
|
170
|
+
- opal/browser/dom/element/form.rb
|
171
|
+
- opal/browser/dom/element/iframe.rb
|
172
|
+
- opal/browser/dom/element/image.rb
|
122
173
|
- opal/browser/dom/element/input.rb
|
174
|
+
- opal/browser/dom/element/media.rb
|
123
175
|
- opal/browser/dom/element/offset.rb
|
124
176
|
- opal/browser/dom/element/position.rb
|
125
177
|
- opal/browser/dom/element/scroll.rb
|
126
|
-
- opal/browser/dom/
|
127
|
-
- opal/browser/dom/
|
128
|
-
- opal/browser/dom/
|
129
|
-
- opal/browser/dom/
|
130
|
-
- opal/browser/dom/event/before_unload.rb
|
131
|
-
- opal/browser/dom/event/clipboard.rb
|
132
|
-
- opal/browser/dom/event/close.rb
|
133
|
-
- opal/browser/dom/event/composition.rb
|
134
|
-
- opal/browser/dom/event/custom.rb
|
135
|
-
- opal/browser/dom/event/device_light.rb
|
136
|
-
- opal/browser/dom/event/device_motion.rb
|
137
|
-
- opal/browser/dom/event/device_orientation.rb
|
138
|
-
- opal/browser/dom/event/device_proximity.rb
|
139
|
-
- opal/browser/dom/event/drag.rb
|
140
|
-
- opal/browser/dom/event/focus.rb
|
141
|
-
- opal/browser/dom/event/gamepad.rb
|
142
|
-
- opal/browser/dom/event/hash_change.rb
|
143
|
-
- opal/browser/dom/event/keyboard.rb
|
144
|
-
- opal/browser/dom/event/message.rb
|
145
|
-
- opal/browser/dom/event/mouse.rb
|
146
|
-
- opal/browser/dom/event/page_transition.rb
|
147
|
-
- opal/browser/dom/event/pop_state.rb
|
148
|
-
- opal/browser/dom/event/progress.rb
|
149
|
-
- opal/browser/dom/event/sensor.rb
|
150
|
-
- opal/browser/dom/event/storage.rb
|
151
|
-
- opal/browser/dom/event/touch.rb
|
152
|
-
- opal/browser/dom/event/ui.rb
|
153
|
-
- opal/browser/dom/event/wheel.rb
|
178
|
+
- opal/browser/dom/element/select.rb
|
179
|
+
- opal/browser/dom/element/size.rb
|
180
|
+
- opal/browser/dom/element/template.rb
|
181
|
+
- opal/browser/dom/element/textarea.rb
|
154
182
|
- opal/browser/dom/mutation_observer.rb
|
155
183
|
- opal/browser/dom/node.rb
|
156
184
|
- opal/browser/dom/node_set.rb
|
185
|
+
- opal/browser/dom/shadow_root.rb
|
157
186
|
- opal/browser/dom/text.rb
|
158
187
|
- opal/browser/effects.rb
|
188
|
+
- opal/browser/event.rb
|
189
|
+
- opal/browser/event/all.rb
|
190
|
+
- opal/browser/event/animation.rb
|
191
|
+
- opal/browser/event/audio_processing.rb
|
192
|
+
- opal/browser/event/base.rb
|
193
|
+
- opal/browser/event/before_unload.rb
|
194
|
+
- opal/browser/event/clipboard.rb
|
195
|
+
- opal/browser/event/close.rb
|
196
|
+
- opal/browser/event/composition.rb
|
197
|
+
- opal/browser/event/custom.rb
|
198
|
+
- opal/browser/event/data_transfer.rb
|
199
|
+
- opal/browser/event/device_light.rb
|
200
|
+
- opal/browser/event/device_motion.rb
|
201
|
+
- opal/browser/event/device_orientation.rb
|
202
|
+
- opal/browser/event/device_proximity.rb
|
203
|
+
- opal/browser/event/drag.rb
|
204
|
+
- opal/browser/event/focus.rb
|
205
|
+
- opal/browser/event/gamepad.rb
|
206
|
+
- opal/browser/event/hash_change.rb
|
207
|
+
- opal/browser/event/keyboard.rb
|
208
|
+
- opal/browser/event/message.rb
|
209
|
+
- opal/browser/event/mouse.rb
|
210
|
+
- opal/browser/event/page_transition.rb
|
211
|
+
- opal/browser/event/pop_state.rb
|
212
|
+
- opal/browser/event/progress.rb
|
213
|
+
- opal/browser/event/sensor.rb
|
214
|
+
- opal/browser/event/storage.rb
|
215
|
+
- opal/browser/event/touch.rb
|
216
|
+
- opal/browser/event/ui.rb
|
217
|
+
- opal/browser/event/wheel.rb
|
159
218
|
- opal/browser/event_source.rb
|
219
|
+
- opal/browser/form_data.rb
|
160
220
|
- opal/browser/history.rb
|
161
221
|
- opal/browser/http.rb
|
162
222
|
- opal/browser/http/binary.rb
|
163
|
-
- opal/browser/http/compatibility.rb
|
164
223
|
- opal/browser/http/headers.rb
|
165
|
-
- opal/browser/http/parameters.rb
|
166
224
|
- opal/browser/http/request.rb
|
167
225
|
- opal/browser/http/response.rb
|
168
226
|
- opal/browser/immediate.rb
|
169
227
|
- opal/browser/interval.rb
|
170
228
|
- opal/browser/location.rb
|
171
229
|
- opal/browser/navigator.rb
|
230
|
+
- opal/browser/polyfill/visual_viewport.rb
|
172
231
|
- opal/browser/screen.rb
|
232
|
+
- opal/browser/setup/base.rb
|
233
|
+
- opal/browser/setup/full.rb
|
234
|
+
- opal/browser/setup/large.rb
|
235
|
+
- opal/browser/setup/mini.rb
|
236
|
+
- opal/browser/setup/traditional.rb
|
173
237
|
- opal/browser/socket.rb
|
174
238
|
- opal/browser/storage.rb
|
175
|
-
- opal/browser/
|
239
|
+
- opal/browser/support.rb
|
176
240
|
- opal/browser/utils.rb
|
177
241
|
- opal/browser/version.rb
|
242
|
+
- opal/browser/visual_viewport.rb
|
178
243
|
- opal/browser/window.rb
|
179
|
-
- opal/browser/window/compatibility.rb
|
180
|
-
- opal/browser/window/scroll.rb
|
181
244
|
- opal/browser/window/size.rb
|
182
245
|
- opal/browser/window/view.rb
|
246
|
+
- opal/opal-browser.rb
|
247
|
+
- spec/database/sql_spec.rb
|
248
|
+
- spec/delay_spec.rb
|
249
|
+
- spec/dom/attribute_spec.rb
|
183
250
|
- spec/dom/builder_spec.rb
|
184
251
|
- spec/dom/document_spec.rb
|
252
|
+
- spec/dom/element/attributes_spec.rb
|
253
|
+
- spec/dom/element/custom_spec.rb
|
254
|
+
- spec/dom/element/subclass_spec.rb
|
185
255
|
- spec/dom/element_spec.rb
|
186
|
-
- spec/dom/event_spec.rb
|
187
256
|
- spec/dom/mutation_observer_spec.rb
|
257
|
+
- spec/dom/node_set_spec.rb
|
188
258
|
- spec/dom/node_spec.rb
|
189
259
|
- spec/dom_spec.rb
|
190
260
|
- spec/event_source_spec.rb
|
261
|
+
- spec/event_spec.rb
|
191
262
|
- spec/history_spec.rb
|
192
263
|
- spec/http_spec.rb
|
193
264
|
- spec/immediate_spec.rb
|
265
|
+
- spec/interval_spec.rb
|
194
266
|
- spec/json2.js
|
267
|
+
- spec/native_cached_wrapper_spec.rb
|
268
|
+
- spec/runner.rb
|
195
269
|
- spec/sizzle.js
|
196
270
|
- spec/socket_spec.rb
|
197
271
|
- spec/spec_helper.rb
|
272
|
+
- spec/spec_helper_promise.rb.erb
|
198
273
|
- spec/storage_spec.rb
|
274
|
+
- spec/wgxpath.install.js
|
199
275
|
- spec/window_spec.rb
|
200
276
|
homepage: http://github.com/opal/opal-browser
|
201
|
-
licenses:
|
277
|
+
licenses:
|
278
|
+
- MIT
|
202
279
|
metadata: {}
|
203
|
-
post_install_message:
|
280
|
+
post_install_message:
|
204
281
|
rdoc_options: []
|
205
282
|
require_paths:
|
206
283
|
- lib
|
@@ -211,30 +288,41 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
211
288
|
version: '0'
|
212
289
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
213
290
|
requirements:
|
214
|
-
- - "
|
291
|
+
- - ">="
|
215
292
|
- !ruby/object:Gem::Version
|
216
|
-
version:
|
293
|
+
version: '0'
|
217
294
|
requirements: []
|
218
|
-
|
219
|
-
|
220
|
-
signing_key:
|
295
|
+
rubygems_version: 3.2.22
|
296
|
+
signing_key:
|
221
297
|
specification_version: 4
|
222
298
|
summary: Browser support for Opal.
|
223
299
|
test_files:
|
300
|
+
- spec/database/sql_spec.rb
|
301
|
+
- spec/delay_spec.rb
|
302
|
+
- spec/dom/attribute_spec.rb
|
224
303
|
- spec/dom/builder_spec.rb
|
225
304
|
- spec/dom/document_spec.rb
|
305
|
+
- spec/dom/element/attributes_spec.rb
|
306
|
+
- spec/dom/element/custom_spec.rb
|
307
|
+
- spec/dom/element/subclass_spec.rb
|
226
308
|
- spec/dom/element_spec.rb
|
227
|
-
- spec/dom/event_spec.rb
|
228
309
|
- spec/dom/mutation_observer_spec.rb
|
310
|
+
- spec/dom/node_set_spec.rb
|
229
311
|
- spec/dom/node_spec.rb
|
230
312
|
- spec/dom_spec.rb
|
231
313
|
- spec/event_source_spec.rb
|
314
|
+
- spec/event_spec.rb
|
232
315
|
- spec/history_spec.rb
|
233
316
|
- spec/http_spec.rb
|
234
317
|
- spec/immediate_spec.rb
|
318
|
+
- spec/interval_spec.rb
|
235
319
|
- spec/json2.js
|
320
|
+
- spec/native_cached_wrapper_spec.rb
|
321
|
+
- spec/runner.rb
|
236
322
|
- spec/sizzle.js
|
237
323
|
- spec/socket_spec.rb
|
238
324
|
- spec/spec_helper.rb
|
325
|
+
- spec/spec_helper_promise.rb.erb
|
239
326
|
- spec/storage_spec.rb
|
327
|
+
- spec/wgxpath.install.js
|
240
328
|
- spec/window_spec.rb
|
@@ -1,93 +0,0 @@
|
|
1
|
-
module Browser
|
2
|
-
|
3
|
-
class Compatibility
|
4
|
-
def self.request_animation?(prefix = nil)
|
5
|
-
if prefix
|
6
|
-
has?("#{prefix}RequestAnimationFrame")
|
7
|
-
else
|
8
|
-
has?(:requestAnimationFrame)
|
9
|
-
end
|
10
|
-
end
|
11
|
-
|
12
|
-
def self.cancel_animation?(prefix = nil)
|
13
|
-
if prefix
|
14
|
-
has?("#{prefix}CancelAnimationFrame")
|
15
|
-
else
|
16
|
-
has?(:cancelAnimationFrame)
|
17
|
-
end
|
18
|
-
end
|
19
|
-
|
20
|
-
def self.cancel_request_animation?(prefix = nil)
|
21
|
-
if prefix
|
22
|
-
has?("#{prefix}CancelRequestAnimationFrame")
|
23
|
-
else
|
24
|
-
has?(:cancelAnimationFrame)
|
25
|
-
end
|
26
|
-
end
|
27
|
-
end
|
28
|
-
|
29
|
-
class AnimationFrame
|
30
|
-
if C.request_animation?
|
31
|
-
def request(block)
|
32
|
-
`#@native.requestAnimationFrame(#{block.to_n})`
|
33
|
-
end
|
34
|
-
elsif C.request_animation? :webkit
|
35
|
-
def request(block)
|
36
|
-
`#@native.webkitRequestAnimationFrame(#{block.to_n})`
|
37
|
-
end
|
38
|
-
elsif C.request_animation? :moz
|
39
|
-
def request(block)
|
40
|
-
`#@native.mozRequestAnimationFrame(#{block.to_n})`
|
41
|
-
end
|
42
|
-
elsif C.request_animation? :o
|
43
|
-
def request(block)
|
44
|
-
`#@native.oRequestAnimationFrame(#{block.to_n})`
|
45
|
-
end
|
46
|
-
elsif C.request_animation? :ms
|
47
|
-
def request(block)
|
48
|
-
`#@native.msRequestAnimationFrame(#{block.to_n})`
|
49
|
-
end
|
50
|
-
end
|
51
|
-
|
52
|
-
if C.cancel_animation?
|
53
|
-
def cancel
|
54
|
-
`#@native.cancelAnimationFrame(#@id)`
|
55
|
-
end
|
56
|
-
else
|
57
|
-
if C.cancel_animation? :webkit
|
58
|
-
def cancel
|
59
|
-
`#@native.webkitCancelAnimationFrame(#@id)`
|
60
|
-
end
|
61
|
-
elsif C.cancel_request_animation? :webkit
|
62
|
-
def cancel
|
63
|
-
`#@native.webkitCancelRequestAnimationFrame(#@id)`
|
64
|
-
end
|
65
|
-
elsif C.cancel_animation? :moz
|
66
|
-
def cancel
|
67
|
-
`#@native.mozCancelAnimationFrame(#@id)`
|
68
|
-
end
|
69
|
-
elsif C.cancel_request_animation? :moz
|
70
|
-
def cancel
|
71
|
-
`#@native.mozCancelRequestAnimationFrame(#@id)`
|
72
|
-
end
|
73
|
-
elsif C.cancel_animation? :o
|
74
|
-
def cancel
|
75
|
-
`#@native.oCancelAnimationFrame(#@id)`
|
76
|
-
end
|
77
|
-
elsif C.cancel_request_animation? :o
|
78
|
-
def cancel
|
79
|
-
`#@native.oCancelRequestAnimationFrame(#@id)`
|
80
|
-
end
|
81
|
-
elsif C.cancel_animation? :ms
|
82
|
-
def cancel
|
83
|
-
`#@native.msCancelAnimationFrame(#@id)`
|
84
|
-
end
|
85
|
-
elsif C.cancel_request_animation? :ms
|
86
|
-
def cancel
|
87
|
-
`#@native.msCancelRequestAnimationFrame(#@id)`
|
88
|
-
end
|
89
|
-
end
|
90
|
-
end
|
91
|
-
end
|
92
|
-
|
93
|
-
end
|