diff --git a/dist/xrfragment.aframe.all.js b/dist/xrfragment.aframe.all.js
index 79a91f4..76e4957 100644
--- a/dist/xrfragment.aframe.all.js
+++ b/dist/xrfragment.aframe.all.js
@@ -1,5 +1,5 @@
/*
- * v0.5.1 generated at Fri Dec 15 04:23:00 PM CET 2023
+ * v0.5.1 generated at Fri Dec 15 05:17:47 PM CET 2023
* https://xrfragment.org
* SPDX-License-Identifier: MPL-2.0
*/
@@ -662,16 +662,16 @@ window.XRFMENU = {
// enable meetings
let startMeeting = () => {
aScene.setAttribute('meeting', 'id: xrfragments')
- $('a#meeting').innerText = '📍 new meeting location'
+ $('a#meeting').innerText = '🧑🤝🧑 breakout meeting'
+ $('a#meeting').setAttribute('aria-description','breakout room')
}
$('a#meeting').addEventListener('click', () => {
if( aScene.getAttribute('meeting') ){ // meeting already, start breakout room
let parentRoom = document.location.href
XRFMENU.updateHashPosition(true)
- let visitorname = aScene.getAttribute("meeting").visitorname
- aScene.removeAttribute('meeting')
- // breakoutroom
- aScene.setAttribute('meeting', `id: xrfragments; visitorname: ${visitorname}; parentRoom: ${parentRoom}`)
+ let meeting = $('[meeting]').components['meeting']
+ meeting.data.parentRoom = parentRoom
+ meeting.update()
}else startMeeting()
})
if( document.location.hash.match(/(#|&)meet/) ) startMeeting()
@@ -3161,6 +3161,12 @@ AFRAME.registerComponent('meeting', {
if( this.room ) this.room.leave()
this.meeting.remove()
},
+ update: function(){
+ setTimeout( () => {
+ this.remove()
+ this.init()
+ },100)
+ },
init: function(){
// embed https://github.com/dmotz/trystero (trystero-torrent.min.js build)
@@ -3282,7 +3288,7 @@ AFRAME.registerComponent('meeting', {
this.initChatLine()
- if( !this.data.visitorname ) this.chat.append("💁 Hi there! Please enter your name")
+ if( !this.data.visitorname ) this.chat.append("Please enter your name below",["info"])
else{
if( this.data.parentRoom ) this.chat.append(`leaving ${this.data.parentRoom}`,["info"]);
this.trysteroInit()
@@ -3441,7 +3447,7 @@ AFRAME.registerComponent('meeting', {
if( e.key !== "Enter" ) return
if( !this.data.visitorname ){
this.data.visitorname = chatline.value
- this.chat.append("btw. camera/mic access is totally optional ♥️")
+ this.chat.append("note: camera/mic access is totally optional ♥️",["info"])
this.trysteroInit()
}else{
let str = `${this.idsToNames[ this.room.selfId ]}: ${chatline.value.substr(0,65515).trim()}`
@@ -3487,15 +3493,19 @@ AFRAME.registerComponent('meeting', {
a.push(t1)
t = t2.join(x)
let y = (!(x.match(/:\/\//)) ? 'https://' : '') + x
+ let attr = 'target="_blank"'
if (isNaN(x) ){
- let url_human = y.split('/')[2]
- let isXRFragment = y.match("pos=")
+ let url_human = y.split('/')[2]
+ let isXRFragment = y.match(/\.(glb|gltf|obj|usdz|fbx|col)/)
if( isXRFragment ){ // detect xr fragments
- url_human = y.replace(/.*[?\?]/,'') // shorten xr fragment links
+ isMeeting = y.match(/(#|&)meet/)
+ url_human = y.replace(/.*[?\?]/,'') // shorten xr fragment links
.replace(/[?\&]meet/,'')
y = y.replace(/.*[\?]/, '?') // start from search (to prevent page-refresh)
+ attr = ''
+ if( isMeeting ) attr = `onclick="$('[meeting]').components['meeting'].update()"`
}
- a.push(`${url_human}`)
+ a.push(`${url_human}`)
}else
a.push(x)
})
diff --git a/dist/xrfragment.aframe.js b/dist/xrfragment.aframe.js
index 0484397..12b7722 100644
--- a/dist/xrfragment.aframe.js
+++ b/dist/xrfragment.aframe.js
@@ -1,5 +1,5 @@
/*
- * v0.5.1 generated at Fri Dec 15 04:23:00 PM CET 2023
+ * v0.5.1 generated at Fri Dec 15 05:17:47 PM CET 2023
* https://xrfragment.org
* SPDX-License-Identifier: MPL-2.0
*/
@@ -656,16 +656,16 @@ window.XRFMENU = {
// enable meetings
let startMeeting = () => {
aScene.setAttribute('meeting', 'id: xrfragments')
- $('a#meeting').innerText = '📍 new meeting location'
+ $('a#meeting').innerText = '🧑🤝🧑 breakout meeting'
+ $('a#meeting').setAttribute('aria-description','breakout room')
}
$('a#meeting').addEventListener('click', () => {
if( aScene.getAttribute('meeting') ){ // meeting already, start breakout room
let parentRoom = document.location.href
XRFMENU.updateHashPosition(true)
- let visitorname = aScene.getAttribute("meeting").visitorname
- aScene.removeAttribute('meeting')
- // breakoutroom
- aScene.setAttribute('meeting', `id: xrfragments; visitorname: ${visitorname}; parentRoom: ${parentRoom}`)
+ let meeting = $('[meeting]').components['meeting']
+ meeting.data.parentRoom = parentRoom
+ meeting.update()
}else startMeeting()
})
if( document.location.hash.match(/(#|&)meet/) ) startMeeting()
@@ -3155,6 +3155,12 @@ AFRAME.registerComponent('meeting', {
if( this.room ) this.room.leave()
this.meeting.remove()
},
+ update: function(){
+ setTimeout( () => {
+ this.remove()
+ this.init()
+ },100)
+ },
init: function(){
// embed https://github.com/dmotz/trystero (trystero-torrent.min.js build)
@@ -3276,7 +3282,7 @@ AFRAME.registerComponent('meeting', {
this.initChatLine()
- if( !this.data.visitorname ) this.chat.append("💁 Hi there! Please enter your name")
+ if( !this.data.visitorname ) this.chat.append("Please enter your name below",["info"])
else{
if( this.data.parentRoom ) this.chat.append(`leaving ${this.data.parentRoom}`,["info"]);
this.trysteroInit()
@@ -3435,7 +3441,7 @@ AFRAME.registerComponent('meeting', {
if( e.key !== "Enter" ) return
if( !this.data.visitorname ){
this.data.visitorname = chatline.value
- this.chat.append("btw. camera/mic access is totally optional ♥️")
+ this.chat.append("note: camera/mic access is totally optional ♥️",["info"])
this.trysteroInit()
}else{
let str = `${this.idsToNames[ this.room.selfId ]}: ${chatline.value.substr(0,65515).trim()}`
@@ -3481,15 +3487,19 @@ AFRAME.registerComponent('meeting', {
a.push(t1)
t = t2.join(x)
let y = (!(x.match(/:\/\//)) ? 'https://' : '') + x
+ let attr = 'target="_blank"'
if (isNaN(x) ){
- let url_human = y.split('/')[2]
- let isXRFragment = y.match("pos=")
+ let url_human = y.split('/')[2]
+ let isXRFragment = y.match(/\.(glb|gltf|obj|usdz|fbx|col)/)
if( isXRFragment ){ // detect xr fragments
- url_human = y.replace(/.*[?\?]/,'') // shorten xr fragment links
+ isMeeting = y.match(/(#|&)meet/)
+ url_human = y.replace(/.*[?\?]/,'') // shorten xr fragment links
.replace(/[?\&]meet/,'')
y = y.replace(/.*[\?]/, '?') // start from search (to prevent page-refresh)
+ attr = ''
+ if( isMeeting ) attr = `onclick="$('[meeting]').components['meeting'].update()"`
}
- a.push(`${url_human}`)
+ a.push(`${url_human}`)
}else
a.push(x)
})
diff --git a/dist/xrfragment.module.js b/dist/xrfragment.module.js
index 5ef28c3..fbf0c46 100644
--- a/dist/xrfragment.module.js
+++ b/dist/xrfragment.module.js
@@ -1,3 +1,208 @@
+/*
+ * v0.5.1 generated at Fri Dec 15 05:17:47 PM CET 2023
+ * https://xrfragment.org
+ * SPDX-License-Identifier: MPL-2.0
+ */
+/*
+ * v0.5.1 generated at Fri Dec 15 05:16:48 PM CET 2023
+ * https://xrfragment.org
+ * SPDX-License-Identifier: MPL-2.0
+ */
+/*
+ * v0.5.1 generated at Fri Dec 15 05:14:40 PM CET 2023
+ * https://xrfragment.org
+ * SPDX-License-Identifier: MPL-2.0
+ */
+/*
+ * v0.5.1 generated at Fri Dec 15 05:13:22 PM CET 2023
+ * https://xrfragment.org
+ * SPDX-License-Identifier: MPL-2.0
+ */
+/*
+ * v0.5.1 generated at Fri Dec 15 05:13:11 PM CET 2023
+ * https://xrfragment.org
+ * SPDX-License-Identifier: MPL-2.0
+ */
+/*
+ * v0.5.1 generated at Fri Dec 15 05:12:24 PM CET 2023
+ * https://xrfragment.org
+ * SPDX-License-Identifier: MPL-2.0
+ */
+/*
+ * v0.5.1 generated at Fri Dec 15 05:08:13 PM CET 2023
+ * https://xrfragment.org
+ * SPDX-License-Identifier: MPL-2.0
+ */
+/*
+ * v0.5.1 generated at Fri Dec 15 05:07:35 PM CET 2023
+ * https://xrfragment.org
+ * SPDX-License-Identifier: MPL-2.0
+ */
+/*
+ * v0.5.1 generated at Fri Dec 15 05:07:29 PM CET 2023
+ * https://xrfragment.org
+ * SPDX-License-Identifier: MPL-2.0
+ */
+/*
+ * v0.5.1 generated at Fri Dec 15 05:06:12 PM CET 2023
+ * https://xrfragment.org
+ * SPDX-License-Identifier: MPL-2.0
+ */
+/*
+ * v0.5.1 generated at Fri Dec 15 05:04:49 PM CET 2023
+ * https://xrfragment.org
+ * SPDX-License-Identifier: MPL-2.0
+ */
+/*
+ * v0.5.1 generated at Fri Dec 15 05:01:18 PM CET 2023
+ * https://xrfragment.org
+ * SPDX-License-Identifier: MPL-2.0
+ */
+/*
+ * v0.5.1 generated at Fri Dec 15 05:00:57 PM CET 2023
+ * https://xrfragment.org
+ * SPDX-License-Identifier: MPL-2.0
+ */
+/*
+ * v0.5.1 generated at Fri Dec 15 05:00:44 PM CET 2023
+ * https://xrfragment.org
+ * SPDX-License-Identifier: MPL-2.0
+ */
+/*
+ * v0.5.1 generated at Fri Dec 15 05:00:39 PM CET 2023
+ * https://xrfragment.org
+ * SPDX-License-Identifier: MPL-2.0
+ */
+/*
+ * v0.5.1 generated at Fri Dec 15 04:59:05 PM CET 2023
+ * https://xrfragment.org
+ * SPDX-License-Identifier: MPL-2.0
+ */
+/*
+ * v0.5.1 generated at Fri Dec 15 04:58:10 PM CET 2023
+ * https://xrfragment.org
+ * SPDX-License-Identifier: MPL-2.0
+ */
+/*
+ * v0.5.1 generated at Fri Dec 15 04:57:45 PM CET 2023
+ * https://xrfragment.org
+ * SPDX-License-Identifier: MPL-2.0
+ */
+/*
+ * v0.5.1 generated at Fri Dec 15 04:57:24 PM CET 2023
+ * https://xrfragment.org
+ * SPDX-License-Identifier: MPL-2.0
+ */
+/*
+ * v0.5.1 generated at Fri Dec 15 04:57:10 PM CET 2023
+ * https://xrfragment.org
+ * SPDX-License-Identifier: MPL-2.0
+ */
+/*
+ * v0.5.1 generated at Fri Dec 15 04:57:02 PM CET 2023
+ * https://xrfragment.org
+ * SPDX-License-Identifier: MPL-2.0
+ */
+/*
+ * v0.5.1 generated at Fri Dec 15 04:56:48 PM CET 2023
+ * https://xrfragment.org
+ * SPDX-License-Identifier: MPL-2.0
+ */
+/*
+ * v0.5.1 generated at Fri Dec 15 04:56:12 PM CET 2023
+ * https://xrfragment.org
+ * SPDX-License-Identifier: MPL-2.0
+ */
+/*
+ * v0.5.1 generated at Fri Dec 15 04:55:21 PM CET 2023
+ * https://xrfragment.org
+ * SPDX-License-Identifier: MPL-2.0
+ */
+/*
+ * v0.5.1 generated at Fri Dec 15 04:51:55 PM CET 2023
+ * https://xrfragment.org
+ * SPDX-License-Identifier: MPL-2.0
+ */
+/*
+ * v0.5.1 generated at Fri Dec 15 04:51:18 PM CET 2023
+ * https://xrfragment.org
+ * SPDX-License-Identifier: MPL-2.0
+ */
+/*
+ * v0.5.1 generated at Fri Dec 15 04:51:03 PM CET 2023
+ * https://xrfragment.org
+ * SPDX-License-Identifier: MPL-2.0
+ */
+/*
+ * v0.5.1 generated at Fri Dec 15 04:50:54 PM CET 2023
+ * https://xrfragment.org
+ * SPDX-License-Identifier: MPL-2.0
+ */
+/*
+ * v0.5.1 generated at Fri Dec 15 04:50:06 PM CET 2023
+ * https://xrfragment.org
+ * SPDX-License-Identifier: MPL-2.0
+ */
+/*
+ * v0.5.1 generated at Fri Dec 15 04:49:40 PM CET 2023
+ * https://xrfragment.org
+ * SPDX-License-Identifier: MPL-2.0
+ */
+/*
+ * v0.5.1 generated at Fri Dec 15 04:48:28 PM CET 2023
+ * https://xrfragment.org
+ * SPDX-License-Identifier: MPL-2.0
+ */
+/*
+ * v0.5.1 generated at Fri Dec 15 04:47:51 PM CET 2023
+ * https://xrfragment.org
+ * SPDX-License-Identifier: MPL-2.0
+ */
+/*
+ * v0.5.1 generated at Fri Dec 15 04:47:30 PM CET 2023
+ * https://xrfragment.org
+ * SPDX-License-Identifier: MPL-2.0
+ */
+/*
+ * v0.5.1 generated at Fri Dec 15 04:46:24 PM CET 2023
+ * https://xrfragment.org
+ * SPDX-License-Identifier: MPL-2.0
+ */
+/*
+ * v0.5.1 generated at Fri Dec 15 04:46:22 PM CET 2023
+ * https://xrfragment.org
+ * SPDX-License-Identifier: MPL-2.0
+ */
+/*
+ * v0.5.1 generated at Fri Dec 15 04:46:20 PM CET 2023
+ * https://xrfragment.org
+ * SPDX-License-Identifier: MPL-2.0
+ */
+/*
+ * v0.5.1 generated at Fri Dec 15 04:45:23 PM CET 2023
+ * https://xrfragment.org
+ * SPDX-License-Identifier: MPL-2.0
+ */
+/*
+ * v0.5.1 generated at Fri Dec 15 04:40:46 PM CET 2023
+ * https://xrfragment.org
+ * SPDX-License-Identifier: MPL-2.0
+ */
+/*
+ * v0.5.1 generated at Fri Dec 15 04:35:44 PM CET 2023
+ * https://xrfragment.org
+ * SPDX-License-Identifier: MPL-2.0
+ */
+/*
+ * v0.5.1 generated at Fri Dec 15 04:34:53 PM CET 2023
+ * https://xrfragment.org
+ * SPDX-License-Identifier: MPL-2.0
+ */
+/*
+ * v0.5.1 generated at Fri Dec 15 04:34:52 PM CET 2023
+ * https://xrfragment.org
+ * SPDX-License-Identifier: MPL-2.0
+ */
/*
* v0.5.1 generated at Fri Dec 15 04:23:00 PM CET 2023
* https://xrfragment.org
@@ -229908,3 +230113,22512 @@ xrfragment_XRF.isNumber = new EReg("^[0-9\\.]+$","");
})({});
var xrfragment = $hx_exports["xrfragment"];
export default xrfragment;
+var $hx_exports = typeof exports != "undefined" ? exports : typeof window != "undefined" ? window : typeof self != "undefined" ? self : this;
+(function ($global) { "use strict";
+$hx_exports["xrfragment"] = $hx_exports["xrfragment"] || {};
+var EReg = function(r,opt) {
+ this.r = new RegExp(r,opt.split("u").join(""));
+};
+EReg.__name__ = true;
+EReg.prototype = {
+ match: function(s) {
+ if(this.r.global) {
+ this.r.lastIndex = 0;
+ }
+ this.r.m = this.r.exec(s);
+ this.r.s = s;
+ return this.r.m != null;
+ }
+ ,split: function(s) {
+ var d = "#__delim__#";
+ return s.replace(this.r,d).split(d);
+ }
+};
+var HxOverrides = function() { };
+HxOverrides.__name__ = true;
+HxOverrides.cca = function(s,index) {
+ var x = s.charCodeAt(index);
+ if(x != x) {
+ return undefined;
+ }
+ return x;
+};
+HxOverrides.substr = function(s,pos,len) {
+ if(len == null) {
+ len = s.length;
+ } else if(len < 0) {
+ if(pos == 0) {
+ len = s.length + len;
+ } else {
+ return "";
+ }
+ }
+ return s.substr(pos,len);
+};
+HxOverrides.now = function() {
+ return Date.now();
+};
+Math.__name__ = true;
+var Reflect = function() { };
+Reflect.__name__ = true;
+Reflect.field = function(o,field) {
+ try {
+ return o[field];
+ } catch( _g ) {
+ return null;
+ }
+};
+Reflect.fields = function(o) {
+ var a = [];
+ if(o != null) {
+ var hasOwnProperty = Object.prototype.hasOwnProperty;
+ for( var f in o ) {
+ if(f != "__id__" && f != "hx__closures__" && hasOwnProperty.call(o,f)) {
+ a.push(f);
+ }
+ }
+ }
+ return a;
+};
+Reflect.deleteField = function(o,field) {
+ if(!Object.prototype.hasOwnProperty.call(o,field)) {
+ return false;
+ }
+ delete(o[field]);
+ return true;
+};
+Reflect.copy = function(o) {
+ if(o == null) {
+ return null;
+ }
+ var o2 = { };
+ var _g = 0;
+ var _g1 = Reflect.fields(o);
+ while(_g < _g1.length) {
+ var f = _g1[_g];
+ ++_g;
+ o2[f] = Reflect.field(o,f);
+ }
+ return o2;
+};
+var Std = function() { };
+Std.__name__ = true;
+Std.string = function(s) {
+ return js_Boot.__string_rec(s,"");
+};
+Std.parseInt = function(x) {
+ if(x != null) {
+ var _g = 0;
+ var _g1 = x.length;
+ while(_g < _g1) {
+ var i = _g++;
+ var c = x.charCodeAt(i);
+ if(c <= 8 || c >= 14 && c != 32 && c != 45) {
+ var nc = x.charCodeAt(i + 1);
+ var v = parseInt(x,nc == 120 || nc == 88 ? 16 : 10);
+ if(isNaN(v)) {
+ return null;
+ } else {
+ return v;
+ }
+ }
+ }
+ }
+ return null;
+};
+var StringTools = function() { };
+StringTools.__name__ = true;
+StringTools.isSpace = function(s,pos) {
+ var c = HxOverrides.cca(s,pos);
+ if(!(c > 8 && c < 14)) {
+ return c == 32;
+ } else {
+ return true;
+ }
+};
+StringTools.ltrim = function(s) {
+ var l = s.length;
+ var r = 0;
+ while(r < l && StringTools.isSpace(s,r)) ++r;
+ if(r > 0) {
+ return HxOverrides.substr(s,r,l - r);
+ } else {
+ return s;
+ }
+};
+StringTools.rtrim = function(s) {
+ var l = s.length;
+ var r = 0;
+ while(r < l && StringTools.isSpace(s,l - r - 1)) ++r;
+ if(r > 0) {
+ return HxOverrides.substr(s,0,l - r);
+ } else {
+ return s;
+ }
+};
+StringTools.trim = function(s) {
+ return StringTools.ltrim(StringTools.rtrim(s));
+};
+var haxe_iterators_ArrayIterator = function(array) {
+ this.current = 0;
+ this.array = array;
+};
+haxe_iterators_ArrayIterator.__name__ = true;
+haxe_iterators_ArrayIterator.prototype = {
+ hasNext: function() {
+ return this.current < this.array.length;
+ }
+ ,next: function() {
+ return this.array[this.current++];
+ }
+};
+var js_Boot = function() { };
+js_Boot.__name__ = true;
+js_Boot.__string_rec = function(o,s) {
+ if(o == null) {
+ return "null";
+ }
+ if(s.length >= 5) {
+ return "<...>";
+ }
+ var t = typeof(o);
+ if(t == "function" && (o.__name__ || o.__ename__)) {
+ t = "object";
+ }
+ switch(t) {
+ case "function":
+ return "";
+ case "object":
+ if(((o) instanceof Array)) {
+ var str = "[";
+ s += "\t";
+ var _g = 0;
+ var _g1 = o.length;
+ while(_g < _g1) {
+ var i = _g++;
+ str += (i > 0 ? "," : "") + js_Boot.__string_rec(o[i],s);
+ }
+ str += "]";
+ return str;
+ }
+ var tostr;
+ try {
+ tostr = o.toString;
+ } catch( _g ) {
+ return "???";
+ }
+ if(tostr != null && tostr != Object.toString && typeof(tostr) == "function") {
+ var s2 = o.toString();
+ if(s2 != "[object Object]") {
+ return s2;
+ }
+ }
+ var str = "{\n";
+ s += "\t";
+ var hasp = o.hasOwnProperty != null;
+ var k = null;
+ for( k in o ) {
+ if(hasp && !o.hasOwnProperty(k)) {
+ continue;
+ }
+ if(k == "prototype" || k == "__class__" || k == "__super__" || k == "__interfaces__" || k == "__properties__") {
+ continue;
+ }
+ if(str.length != 2) {
+ str += ", \n";
+ }
+ str += s + k + " : " + js_Boot.__string_rec(o[k],s);
+ }
+ s = s.substring(1);
+ str += "\n" + s + "}";
+ return str;
+ case "string":
+ return o;
+ default:
+ return String(o);
+ }
+};
+var xrfragment_Filter = $hx_exports["xrfragment"]["Filter"] = function(str) {
+ this.q = { };
+ this.str = "";
+ if(str != null) {
+ this.parse(str);
+ }
+};
+xrfragment_Filter.__name__ = true;
+xrfragment_Filter.prototype = {
+ toObject: function() {
+ return Reflect.copy(this.q);
+ }
+ ,get: function() {
+ return Reflect.copy(this.q);
+ }
+ ,parse: function(str) {
+ var token = str.split(" ");
+ var q = { };
+ var process = function(str,prefix) {
+ if(prefix == null) {
+ prefix = "";
+ }
+ str = StringTools.trim(str);
+ var k = str.split("=")[0];
+ var v = str.split("=")[1];
+ var filter = { };
+ if(q[prefix + k]) {
+ filter = q[prefix + k];
+ }
+ if(xrfragment_XRF.isProp.match(str)) {
+ var oper = "";
+ if(str.indexOf(">") != -1) {
+ oper = ">";
+ }
+ if(str.indexOf("<") != -1) {
+ oper = "<";
+ }
+ if(xrfragment_XRF.isExclude.match(k)) {
+ k = HxOverrides.substr(k,1,null);
+ }
+ v = HxOverrides.substr(v,oper.length,null);
+ if(oper.length == 0) {
+ oper = "=";
+ }
+ var rule = { };
+ if(xrfragment_XRF.isNumber.match(v)) {
+ rule[oper] = parseFloat(v);
+ } else {
+ rule[oper] = v;
+ }
+ q["expr"] = rule;
+ }
+ var value = xrfragment_XRF.isDeep.match(str) ? k.split("*").length - 1 : 0;
+ q["deep"] = value;
+ var value = xrfragment_XRF.isExclude.match(str) ? false : true;
+ q["show"] = value;
+ var value = k.replace(xrfragment_XRF.operators.r,"");
+ q["key"] = value;
+ q["value"] = v;
+ };
+ var _g = 0;
+ var _g1 = token.length;
+ while(_g < _g1) {
+ var i = _g++;
+ process(token[i]);
+ }
+ return this.q = q;
+ }
+ ,test: function(obj) {
+ var qualify = false;
+ var _g = 0;
+ var _g1 = Reflect.fields(obj);
+ while(_g < _g1.length) {
+ var k = _g1[_g];
+ ++_g;
+ var v = Std.string(Reflect.field(obj,k));
+ if(this.testProperty(k,v)) {
+ qualify = true;
+ }
+ }
+ var _g = 0;
+ var _g1 = Reflect.fields(obj);
+ while(_g < _g1.length) {
+ var k = _g1[_g];
+ ++_g;
+ var v = Std.string(Reflect.field(obj,k));
+ if(this.testProperty(k,v,true)) {
+ qualify = false;
+ }
+ }
+ return qualify;
+ }
+ ,testProperty: function(property,value,exclude) {
+ var conds = 0;
+ var fails = 0;
+ var qualify = 0;
+ var testprop = function(expr) {
+ conds += 1;
+ fails += expr ? 0 : 1;
+ return expr;
+ };
+ if(this.q[value] != null) {
+ var v = this.q[value];
+ if(v[property] != null) {
+ return v[property];
+ }
+ }
+ if(Reflect.field(this.q,"expr")) {
+ var f = Reflect.field(this.q,"expr");
+ if(!Reflect.field(this.q,"show")) {
+ if(Reflect.field(f,"!=") != null && testprop((value == null ? "null" : "" + value) == Std.string(Reflect.field(f,"!="))) && exclude) {
+ ++qualify;
+ }
+ } else {
+ if(Reflect.field(f,"*") != null && testprop(parseFloat(value) != null)) {
+ ++qualify;
+ }
+ if(Reflect.field(f,">") != null && testprop(parseFloat(value) >= parseFloat(Reflect.field(f,">")))) {
+ ++qualify;
+ }
+ if(Reflect.field(f,"<") != null && testprop(parseFloat(value) <= parseFloat(Reflect.field(f,"<")))) {
+ ++qualify;
+ }
+ if(Reflect.field(f,"=") != null && (testprop(value == Reflect.field(f,"=")) || testprop(parseFloat(value) == parseFloat(Reflect.field(f,"="))))) {
+ ++qualify;
+ }
+ }
+ }
+ return qualify > 0;
+ }
+};
+var xrfragment_Parser = $hx_exports["xrfragment"]["Parser"] = function() { };
+xrfragment_Parser.__name__ = true;
+xrfragment_Parser.parse = function(key,value,store,index) {
+ var Frag_h = Object.create(null);
+ Frag_h["#"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_PREDEFINED_VIEW | xrfragment_XRF.PV_EXECUTE;
+ Frag_h["src"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_URL;
+ Frag_h["href"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_URL | xrfragment_XRF.T_PREDEFINED_VIEW;
+ Frag_h["tag"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["pos"] = xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_VECTOR3 | xrfragment_XRF.T_STRING | xrfragment_XRF.T_STRING_OBJ | xrfragment_XRF.METADATA | xrfragment_XRF.NAVIGATOR;
+ Frag_h["rot"] = xrfragment_XRF.QUERY_OPERATOR | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_VECTOR3 | xrfragment_XRF.METADATA | xrfragment_XRF.NAVIGATOR;
+ Frag_h["t"] = xrfragment_XRF.ASSET | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_FLOAT | xrfragment_XRF.T_VECTOR2 | xrfragment_XRF.T_STRING | xrfragment_XRF.NAVIGATOR | xrfragment_XRF.METADATA;
+ Frag_h["tv"] = xrfragment_XRF.ASSET | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_FLOAT | xrfragment_XRF.T_VECTOR2 | xrfragment_XRF.T_VECTOR3 | xrfragment_XRF.NAVIGATOR | xrfragment_XRF.METADATA;
+ Frag_h["namespace"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["SPDX"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["unit"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["description"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["session"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_URL | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.NAVIGATOR | xrfragment_XRF.METADATA | xrfragment_XRF.PROMPT;
+ var keyStripped = key.replace(xrfragment_XRF.operators.r,"");
+ var isPVDynamic = key.length > 0 && !Object.prototype.hasOwnProperty.call(Frag_h,key);
+ var isPVDefault = value.length == 0 && key.length > 0 && key == "#";
+ if(isPVDynamic) {
+ var v = new xrfragment_XRF(key,xrfragment_XRF.PV_EXECUTE | xrfragment_XRF.NAVIGATOR,index);
+ v.validate(value);
+ store[keyStripped] = v;
+ return true;
+ }
+ var v = new xrfragment_XRF(key,Frag_h[key],index);
+ if(Object.prototype.hasOwnProperty.call(Frag_h,key)) {
+ if(!v.validate(value)) {
+ console.log("src/xrfragment/Parser.hx:66:","⚠ fragment '" + key + "' has incompatible value (" + value + ")");
+ return false;
+ }
+ store[keyStripped] = v;
+ if(xrfragment_Parser.debug) {
+ console.log("src/xrfragment/Parser.hx:70:","✔ " + key + ": " + v.string);
+ }
+ } else {
+ if(typeof(value) == "string") {
+ v.guessType(v,value);
+ }
+ v.noXRF = true;
+ store[keyStripped] = v;
+ }
+ return true;
+};
+var xrfragment_URI = $hx_exports["xrfragment"]["URI"] = function() { };
+xrfragment_URI.__name__ = true;
+xrfragment_URI.parse = function(url,filter) {
+ var store = { };
+ if(url == null || url.indexOf("#") == -1) {
+ return store;
+ }
+ var fragment = url.split("#");
+ var splitArray = fragment[1].split("&");
+ var _g = 0;
+ var _g1 = splitArray.length;
+ while(_g < _g1) {
+ var i = _g++;
+ var splitByEqual = splitArray[i].split("=");
+ var regexPlus = new EReg("\\+","g");
+ var key = splitByEqual[0];
+ var value = "";
+ if(splitByEqual.length > 1) {
+ var s = regexPlus.split(splitByEqual[1]).join(" ");
+ value = decodeURIComponent(s.split("+").join(" "));
+ }
+ var ok = xrfragment_Parser.parse(key,value,store,i);
+ }
+ if(filter != null && filter != 0) {
+ var _g = 0;
+ var _g1 = Reflect.fields(store);
+ while(_g < _g1.length) {
+ var key = _g1[_g];
+ ++_g;
+ var xrf = store[key];
+ if(!xrf.is(filter)) {
+ Reflect.deleteField(store,key);
+ }
+ }
+ }
+ return store;
+};
+var xrfragment_XRF = $hx_exports["xrfragment"]["XRF"] = function(_fragment,_flags,_index) {
+ this.fragment = _fragment;
+ this.flags = _flags;
+ this.index = _index;
+};
+xrfragment_XRF.__name__ = true;
+xrfragment_XRF.set = function(flag,flags) {
+ return flags | flag;
+};
+xrfragment_XRF.unset = function(flag,flags) {
+ return flags & ~flag;
+};
+xrfragment_XRF.prototype = {
+ is: function(flag) {
+ var v = this.flags;
+ if(!(typeof(v) == "number" && ((v | 0) === v))) {
+ this.flags = 0;
+ }
+ return (this.flags & flag) != 0;
+ }
+ ,validate: function(value) {
+ this.guessType(this,value);
+ var ok = true;
+ if(!this.is(xrfragment_XRF.T_FLOAT) && this.is(xrfragment_XRF.T_VECTOR2) && !(typeof(this.x) == "number" && typeof(this.y) == "number")) {
+ ok = false;
+ }
+ if(!(this.is(xrfragment_XRF.T_VECTOR2) || this.is(xrfragment_XRF.T_STRING)) && this.is(xrfragment_XRF.T_VECTOR3) && !(typeof(this.x) == "number" && typeof(this.y) == "number" && typeof(this.z) == "number")) {
+ ok = false;
+ }
+ return ok;
+ }
+ ,guessType: function(v,str) {
+ v.string = str;
+ if(typeof(str) != "string") {
+ return;
+ }
+ if(str.length > 0) {
+ if(str.split(",").length > 1) {
+ var xyzw = str.split(",");
+ if(xyzw.length > 0) {
+ v.x = parseFloat(xyzw[0]);
+ }
+ if(xyzw.length > 1) {
+ v.y = parseFloat(xyzw[1]);
+ }
+ if(xyzw.length > 2) {
+ v.z = parseFloat(xyzw[2]);
+ }
+ if(xyzw.length > 3) {
+ v.w = parseFloat(xyzw[3]);
+ }
+ }
+ if(xrfragment_XRF.isColor.match(str)) {
+ v.color = str;
+ }
+ if(xrfragment_XRF.isFloat.match(str)) {
+ v.x = parseFloat(str);
+ v.float = v.x;
+ }
+ if(xrfragment_XRF.isInt.match(str)) {
+ v.int = Std.parseInt(str);
+ v.x = v.int;
+ }
+ v.filter = new xrfragment_Filter(v.fragment + "=" + v.string);
+ } else {
+ v.filter = new xrfragment_Filter(v.fragment);
+ }
+ }
+};
+if(typeof(performance) != "undefined" ? typeof(performance.now) == "function" : false) {
+ HxOverrides.now = performance.now.bind(performance);
+}
+String.__name__ = true;
+Array.__name__ = true;
+js_Boot.__toStr = ({ }).toString;
+xrfragment_Parser.error = "";
+xrfragment_Parser.debug = false;
+xrfragment_XRF.ASSET = 1;
+xrfragment_XRF.PROP_BIND = 2;
+xrfragment_XRF.QUERY_OPERATOR = 4;
+xrfragment_XRF.PROMPT = 8;
+xrfragment_XRF.ROUNDROBIN = 16;
+xrfragment_XRF.NAVIGATOR = 32;
+xrfragment_XRF.METADATA = 64;
+xrfragment_XRF.PV_OVERRIDE = 128;
+xrfragment_XRF.PV_EXECUTE = 256;
+xrfragment_XRF.T_COLOR = 8192;
+xrfragment_XRF.T_INT = 16384;
+xrfragment_XRF.T_FLOAT = 32768;
+xrfragment_XRF.T_VECTOR2 = 65536;
+xrfragment_XRF.T_VECTOR3 = 131072;
+xrfragment_XRF.T_URL = 262144;
+xrfragment_XRF.T_PREDEFINED_VIEW = 524288;
+xrfragment_XRF.T_STRING = 1048576;
+xrfragment_XRF.T_STRING_OBJ = 2097152;
+xrfragment_XRF.T_STRING_OBJ_PROP = 4194304;
+xrfragment_XRF.isColor = new EReg("^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$","");
+xrfragment_XRF.isInt = new EReg("^[-0-9]+$","");
+xrfragment_XRF.isFloat = new EReg("^[-0-9]+\\.[0-9]+$","");
+xrfragment_XRF.isVector = new EReg("([,]+|\\w)","");
+xrfragment_XRF.isUrl = new EReg("(://)?\\..*","");
+xrfragment_XRF.isUrlOrPretypedView = new EReg("(^#|://)?\\..*","");
+xrfragment_XRF.isString = new EReg(".*","");
+xrfragment_XRF.operators = new EReg("(^-|[\\*]+)","");
+xrfragment_XRF.isProp = new EReg("^.*=[><=]?","");
+xrfragment_XRF.isExclude = new EReg("^-","");
+xrfragment_XRF.isDeep = new EReg("\\*","");
+xrfragment_XRF.isNumber = new EReg("^[0-9\\.]+$","");
+})({});
+var xrfragment = $hx_exports["xrfragment"];
+export default xrfragment;
+var $hx_exports = typeof exports != "undefined" ? exports : typeof window != "undefined" ? window : typeof self != "undefined" ? self : this;
+(function ($global) { "use strict";
+$hx_exports["xrfragment"] = $hx_exports["xrfragment"] || {};
+var EReg = function(r,opt) {
+ this.r = new RegExp(r,opt.split("u").join(""));
+};
+EReg.__name__ = true;
+EReg.prototype = {
+ match: function(s) {
+ if(this.r.global) {
+ this.r.lastIndex = 0;
+ }
+ this.r.m = this.r.exec(s);
+ this.r.s = s;
+ return this.r.m != null;
+ }
+ ,split: function(s) {
+ var d = "#__delim__#";
+ return s.replace(this.r,d).split(d);
+ }
+};
+var HxOverrides = function() { };
+HxOverrides.__name__ = true;
+HxOverrides.cca = function(s,index) {
+ var x = s.charCodeAt(index);
+ if(x != x) {
+ return undefined;
+ }
+ return x;
+};
+HxOverrides.substr = function(s,pos,len) {
+ if(len == null) {
+ len = s.length;
+ } else if(len < 0) {
+ if(pos == 0) {
+ len = s.length + len;
+ } else {
+ return "";
+ }
+ }
+ return s.substr(pos,len);
+};
+HxOverrides.now = function() {
+ return Date.now();
+};
+Math.__name__ = true;
+var Reflect = function() { };
+Reflect.__name__ = true;
+Reflect.field = function(o,field) {
+ try {
+ return o[field];
+ } catch( _g ) {
+ return null;
+ }
+};
+Reflect.fields = function(o) {
+ var a = [];
+ if(o != null) {
+ var hasOwnProperty = Object.prototype.hasOwnProperty;
+ for( var f in o ) {
+ if(f != "__id__" && f != "hx__closures__" && hasOwnProperty.call(o,f)) {
+ a.push(f);
+ }
+ }
+ }
+ return a;
+};
+Reflect.deleteField = function(o,field) {
+ if(!Object.prototype.hasOwnProperty.call(o,field)) {
+ return false;
+ }
+ delete(o[field]);
+ return true;
+};
+Reflect.copy = function(o) {
+ if(o == null) {
+ return null;
+ }
+ var o2 = { };
+ var _g = 0;
+ var _g1 = Reflect.fields(o);
+ while(_g < _g1.length) {
+ var f = _g1[_g];
+ ++_g;
+ o2[f] = Reflect.field(o,f);
+ }
+ return o2;
+};
+var Std = function() { };
+Std.__name__ = true;
+Std.string = function(s) {
+ return js_Boot.__string_rec(s,"");
+};
+Std.parseInt = function(x) {
+ if(x != null) {
+ var _g = 0;
+ var _g1 = x.length;
+ while(_g < _g1) {
+ var i = _g++;
+ var c = x.charCodeAt(i);
+ if(c <= 8 || c >= 14 && c != 32 && c != 45) {
+ var nc = x.charCodeAt(i + 1);
+ var v = parseInt(x,nc == 120 || nc == 88 ? 16 : 10);
+ if(isNaN(v)) {
+ return null;
+ } else {
+ return v;
+ }
+ }
+ }
+ }
+ return null;
+};
+var StringTools = function() { };
+StringTools.__name__ = true;
+StringTools.isSpace = function(s,pos) {
+ var c = HxOverrides.cca(s,pos);
+ if(!(c > 8 && c < 14)) {
+ return c == 32;
+ } else {
+ return true;
+ }
+};
+StringTools.ltrim = function(s) {
+ var l = s.length;
+ var r = 0;
+ while(r < l && StringTools.isSpace(s,r)) ++r;
+ if(r > 0) {
+ return HxOverrides.substr(s,r,l - r);
+ } else {
+ return s;
+ }
+};
+StringTools.rtrim = function(s) {
+ var l = s.length;
+ var r = 0;
+ while(r < l && StringTools.isSpace(s,l - r - 1)) ++r;
+ if(r > 0) {
+ return HxOverrides.substr(s,0,l - r);
+ } else {
+ return s;
+ }
+};
+StringTools.trim = function(s) {
+ return StringTools.ltrim(StringTools.rtrim(s));
+};
+var haxe_iterators_ArrayIterator = function(array) {
+ this.current = 0;
+ this.array = array;
+};
+haxe_iterators_ArrayIterator.__name__ = true;
+haxe_iterators_ArrayIterator.prototype = {
+ hasNext: function() {
+ return this.current < this.array.length;
+ }
+ ,next: function() {
+ return this.array[this.current++];
+ }
+};
+var js_Boot = function() { };
+js_Boot.__name__ = true;
+js_Boot.__string_rec = function(o,s) {
+ if(o == null) {
+ return "null";
+ }
+ if(s.length >= 5) {
+ return "<...>";
+ }
+ var t = typeof(o);
+ if(t == "function" && (o.__name__ || o.__ename__)) {
+ t = "object";
+ }
+ switch(t) {
+ case "function":
+ return "";
+ case "object":
+ if(((o) instanceof Array)) {
+ var str = "[";
+ s += "\t";
+ var _g = 0;
+ var _g1 = o.length;
+ while(_g < _g1) {
+ var i = _g++;
+ str += (i > 0 ? "," : "") + js_Boot.__string_rec(o[i],s);
+ }
+ str += "]";
+ return str;
+ }
+ var tostr;
+ try {
+ tostr = o.toString;
+ } catch( _g ) {
+ return "???";
+ }
+ if(tostr != null && tostr != Object.toString && typeof(tostr) == "function") {
+ var s2 = o.toString();
+ if(s2 != "[object Object]") {
+ return s2;
+ }
+ }
+ var str = "{\n";
+ s += "\t";
+ var hasp = o.hasOwnProperty != null;
+ var k = null;
+ for( k in o ) {
+ if(hasp && !o.hasOwnProperty(k)) {
+ continue;
+ }
+ if(k == "prototype" || k == "__class__" || k == "__super__" || k == "__interfaces__" || k == "__properties__") {
+ continue;
+ }
+ if(str.length != 2) {
+ str += ", \n";
+ }
+ str += s + k + " : " + js_Boot.__string_rec(o[k],s);
+ }
+ s = s.substring(1);
+ str += "\n" + s + "}";
+ return str;
+ case "string":
+ return o;
+ default:
+ return String(o);
+ }
+};
+var xrfragment_Filter = $hx_exports["xrfragment"]["Filter"] = function(str) {
+ this.q = { };
+ this.str = "";
+ if(str != null) {
+ this.parse(str);
+ }
+};
+xrfragment_Filter.__name__ = true;
+xrfragment_Filter.prototype = {
+ toObject: function() {
+ return Reflect.copy(this.q);
+ }
+ ,get: function() {
+ return Reflect.copy(this.q);
+ }
+ ,parse: function(str) {
+ var token = str.split(" ");
+ var q = { };
+ var process = function(str,prefix) {
+ if(prefix == null) {
+ prefix = "";
+ }
+ str = StringTools.trim(str);
+ var k = str.split("=")[0];
+ var v = str.split("=")[1];
+ var filter = { };
+ if(q[prefix + k]) {
+ filter = q[prefix + k];
+ }
+ if(xrfragment_XRF.isProp.match(str)) {
+ var oper = "";
+ if(str.indexOf(">") != -1) {
+ oper = ">";
+ }
+ if(str.indexOf("<") != -1) {
+ oper = "<";
+ }
+ if(xrfragment_XRF.isExclude.match(k)) {
+ k = HxOverrides.substr(k,1,null);
+ }
+ v = HxOverrides.substr(v,oper.length,null);
+ if(oper.length == 0) {
+ oper = "=";
+ }
+ var rule = { };
+ if(xrfragment_XRF.isNumber.match(v)) {
+ rule[oper] = parseFloat(v);
+ } else {
+ rule[oper] = v;
+ }
+ q["expr"] = rule;
+ }
+ var value = xrfragment_XRF.isDeep.match(str) ? k.split("*").length - 1 : 0;
+ q["deep"] = value;
+ var value = xrfragment_XRF.isExclude.match(str) ? false : true;
+ q["show"] = value;
+ var value = k.replace(xrfragment_XRF.operators.r,"");
+ q["key"] = value;
+ q["value"] = v;
+ };
+ var _g = 0;
+ var _g1 = token.length;
+ while(_g < _g1) {
+ var i = _g++;
+ process(token[i]);
+ }
+ return this.q = q;
+ }
+ ,test: function(obj) {
+ var qualify = false;
+ var _g = 0;
+ var _g1 = Reflect.fields(obj);
+ while(_g < _g1.length) {
+ var k = _g1[_g];
+ ++_g;
+ var v = Std.string(Reflect.field(obj,k));
+ if(this.testProperty(k,v)) {
+ qualify = true;
+ }
+ }
+ var _g = 0;
+ var _g1 = Reflect.fields(obj);
+ while(_g < _g1.length) {
+ var k = _g1[_g];
+ ++_g;
+ var v = Std.string(Reflect.field(obj,k));
+ if(this.testProperty(k,v,true)) {
+ qualify = false;
+ }
+ }
+ return qualify;
+ }
+ ,testProperty: function(property,value,exclude) {
+ var conds = 0;
+ var fails = 0;
+ var qualify = 0;
+ var testprop = function(expr) {
+ conds += 1;
+ fails += expr ? 0 : 1;
+ return expr;
+ };
+ if(this.q[value] != null) {
+ var v = this.q[value];
+ if(v[property] != null) {
+ return v[property];
+ }
+ }
+ if(Reflect.field(this.q,"expr")) {
+ var f = Reflect.field(this.q,"expr");
+ if(!Reflect.field(this.q,"show")) {
+ if(Reflect.field(f,"!=") != null && testprop((value == null ? "null" : "" + value) == Std.string(Reflect.field(f,"!="))) && exclude) {
+ ++qualify;
+ }
+ } else {
+ if(Reflect.field(f,"*") != null && testprop(parseFloat(value) != null)) {
+ ++qualify;
+ }
+ if(Reflect.field(f,">") != null && testprop(parseFloat(value) >= parseFloat(Reflect.field(f,">")))) {
+ ++qualify;
+ }
+ if(Reflect.field(f,"<") != null && testprop(parseFloat(value) <= parseFloat(Reflect.field(f,"<")))) {
+ ++qualify;
+ }
+ if(Reflect.field(f,"=") != null && (testprop(value == Reflect.field(f,"=")) || testprop(parseFloat(value) == parseFloat(Reflect.field(f,"="))))) {
+ ++qualify;
+ }
+ }
+ }
+ return qualify > 0;
+ }
+};
+var xrfragment_Parser = $hx_exports["xrfragment"]["Parser"] = function() { };
+xrfragment_Parser.__name__ = true;
+xrfragment_Parser.parse = function(key,value,store,index) {
+ var Frag_h = Object.create(null);
+ Frag_h["#"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_PREDEFINED_VIEW | xrfragment_XRF.PV_EXECUTE;
+ Frag_h["src"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_URL;
+ Frag_h["href"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_URL | xrfragment_XRF.T_PREDEFINED_VIEW;
+ Frag_h["tag"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["pos"] = xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_VECTOR3 | xrfragment_XRF.T_STRING | xrfragment_XRF.T_STRING_OBJ | xrfragment_XRF.METADATA | xrfragment_XRF.NAVIGATOR;
+ Frag_h["rot"] = xrfragment_XRF.QUERY_OPERATOR | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_VECTOR3 | xrfragment_XRF.METADATA | xrfragment_XRF.NAVIGATOR;
+ Frag_h["t"] = xrfragment_XRF.ASSET | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_FLOAT | xrfragment_XRF.T_VECTOR2 | xrfragment_XRF.T_STRING | xrfragment_XRF.NAVIGATOR | xrfragment_XRF.METADATA;
+ Frag_h["tv"] = xrfragment_XRF.ASSET | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_FLOAT | xrfragment_XRF.T_VECTOR2 | xrfragment_XRF.T_VECTOR3 | xrfragment_XRF.NAVIGATOR | xrfragment_XRF.METADATA;
+ Frag_h["namespace"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["SPDX"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["unit"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["description"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["session"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_URL | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.NAVIGATOR | xrfragment_XRF.METADATA | xrfragment_XRF.PROMPT;
+ var keyStripped = key.replace(xrfragment_XRF.operators.r,"");
+ var isPVDynamic = key.length > 0 && !Object.prototype.hasOwnProperty.call(Frag_h,key);
+ var isPVDefault = value.length == 0 && key.length > 0 && key == "#";
+ if(isPVDynamic) {
+ var v = new xrfragment_XRF(key,xrfragment_XRF.PV_EXECUTE | xrfragment_XRF.NAVIGATOR,index);
+ v.validate(value);
+ store[keyStripped] = v;
+ return true;
+ }
+ var v = new xrfragment_XRF(key,Frag_h[key],index);
+ if(Object.prototype.hasOwnProperty.call(Frag_h,key)) {
+ if(!v.validate(value)) {
+ console.log("src/xrfragment/Parser.hx:66:","⚠ fragment '" + key + "' has incompatible value (" + value + ")");
+ return false;
+ }
+ store[keyStripped] = v;
+ if(xrfragment_Parser.debug) {
+ console.log("src/xrfragment/Parser.hx:70:","✔ " + key + ": " + v.string);
+ }
+ } else {
+ if(typeof(value) == "string") {
+ v.guessType(v,value);
+ }
+ v.noXRF = true;
+ store[keyStripped] = v;
+ }
+ return true;
+};
+var xrfragment_URI = $hx_exports["xrfragment"]["URI"] = function() { };
+xrfragment_URI.__name__ = true;
+xrfragment_URI.parse = function(url,filter) {
+ var store = { };
+ if(url == null || url.indexOf("#") == -1) {
+ return store;
+ }
+ var fragment = url.split("#");
+ var splitArray = fragment[1].split("&");
+ var _g = 0;
+ var _g1 = splitArray.length;
+ while(_g < _g1) {
+ var i = _g++;
+ var splitByEqual = splitArray[i].split("=");
+ var regexPlus = new EReg("\\+","g");
+ var key = splitByEqual[0];
+ var value = "";
+ if(splitByEqual.length > 1) {
+ var s = regexPlus.split(splitByEqual[1]).join(" ");
+ value = decodeURIComponent(s.split("+").join(" "));
+ }
+ var ok = xrfragment_Parser.parse(key,value,store,i);
+ }
+ if(filter != null && filter != 0) {
+ var _g = 0;
+ var _g1 = Reflect.fields(store);
+ while(_g < _g1.length) {
+ var key = _g1[_g];
+ ++_g;
+ var xrf = store[key];
+ if(!xrf.is(filter)) {
+ Reflect.deleteField(store,key);
+ }
+ }
+ }
+ return store;
+};
+var xrfragment_XRF = $hx_exports["xrfragment"]["XRF"] = function(_fragment,_flags,_index) {
+ this.fragment = _fragment;
+ this.flags = _flags;
+ this.index = _index;
+};
+xrfragment_XRF.__name__ = true;
+xrfragment_XRF.set = function(flag,flags) {
+ return flags | flag;
+};
+xrfragment_XRF.unset = function(flag,flags) {
+ return flags & ~flag;
+};
+xrfragment_XRF.prototype = {
+ is: function(flag) {
+ var v = this.flags;
+ if(!(typeof(v) == "number" && ((v | 0) === v))) {
+ this.flags = 0;
+ }
+ return (this.flags & flag) != 0;
+ }
+ ,validate: function(value) {
+ this.guessType(this,value);
+ var ok = true;
+ if(!this.is(xrfragment_XRF.T_FLOAT) && this.is(xrfragment_XRF.T_VECTOR2) && !(typeof(this.x) == "number" && typeof(this.y) == "number")) {
+ ok = false;
+ }
+ if(!(this.is(xrfragment_XRF.T_VECTOR2) || this.is(xrfragment_XRF.T_STRING)) && this.is(xrfragment_XRF.T_VECTOR3) && !(typeof(this.x) == "number" && typeof(this.y) == "number" && typeof(this.z) == "number")) {
+ ok = false;
+ }
+ return ok;
+ }
+ ,guessType: function(v,str) {
+ v.string = str;
+ if(typeof(str) != "string") {
+ return;
+ }
+ if(str.length > 0) {
+ if(str.split(",").length > 1) {
+ var xyzw = str.split(",");
+ if(xyzw.length > 0) {
+ v.x = parseFloat(xyzw[0]);
+ }
+ if(xyzw.length > 1) {
+ v.y = parseFloat(xyzw[1]);
+ }
+ if(xyzw.length > 2) {
+ v.z = parseFloat(xyzw[2]);
+ }
+ if(xyzw.length > 3) {
+ v.w = parseFloat(xyzw[3]);
+ }
+ }
+ if(xrfragment_XRF.isColor.match(str)) {
+ v.color = str;
+ }
+ if(xrfragment_XRF.isFloat.match(str)) {
+ v.x = parseFloat(str);
+ v.float = v.x;
+ }
+ if(xrfragment_XRF.isInt.match(str)) {
+ v.int = Std.parseInt(str);
+ v.x = v.int;
+ }
+ v.filter = new xrfragment_Filter(v.fragment + "=" + v.string);
+ } else {
+ v.filter = new xrfragment_Filter(v.fragment);
+ }
+ }
+};
+if(typeof(performance) != "undefined" ? typeof(performance.now) == "function" : false) {
+ HxOverrides.now = performance.now.bind(performance);
+}
+String.__name__ = true;
+Array.__name__ = true;
+js_Boot.__toStr = ({ }).toString;
+xrfragment_Parser.error = "";
+xrfragment_Parser.debug = false;
+xrfragment_XRF.ASSET = 1;
+xrfragment_XRF.PROP_BIND = 2;
+xrfragment_XRF.QUERY_OPERATOR = 4;
+xrfragment_XRF.PROMPT = 8;
+xrfragment_XRF.ROUNDROBIN = 16;
+xrfragment_XRF.NAVIGATOR = 32;
+xrfragment_XRF.METADATA = 64;
+xrfragment_XRF.PV_OVERRIDE = 128;
+xrfragment_XRF.PV_EXECUTE = 256;
+xrfragment_XRF.T_COLOR = 8192;
+xrfragment_XRF.T_INT = 16384;
+xrfragment_XRF.T_FLOAT = 32768;
+xrfragment_XRF.T_VECTOR2 = 65536;
+xrfragment_XRF.T_VECTOR3 = 131072;
+xrfragment_XRF.T_URL = 262144;
+xrfragment_XRF.T_PREDEFINED_VIEW = 524288;
+xrfragment_XRF.T_STRING = 1048576;
+xrfragment_XRF.T_STRING_OBJ = 2097152;
+xrfragment_XRF.T_STRING_OBJ_PROP = 4194304;
+xrfragment_XRF.isColor = new EReg("^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$","");
+xrfragment_XRF.isInt = new EReg("^[-0-9]+$","");
+xrfragment_XRF.isFloat = new EReg("^[-0-9]+\\.[0-9]+$","");
+xrfragment_XRF.isVector = new EReg("([,]+|\\w)","");
+xrfragment_XRF.isUrl = new EReg("(://)?\\..*","");
+xrfragment_XRF.isUrlOrPretypedView = new EReg("(^#|://)?\\..*","");
+xrfragment_XRF.isString = new EReg(".*","");
+xrfragment_XRF.operators = new EReg("(^-|[\\*]+)","");
+xrfragment_XRF.isProp = new EReg("^.*=[><=]?","");
+xrfragment_XRF.isExclude = new EReg("^-","");
+xrfragment_XRF.isDeep = new EReg("\\*","");
+xrfragment_XRF.isNumber = new EReg("^[0-9\\.]+$","");
+})({});
+var xrfragment = $hx_exports["xrfragment"];
+export default xrfragment;
+var $hx_exports = typeof exports != "undefined" ? exports : typeof window != "undefined" ? window : typeof self != "undefined" ? self : this;
+(function ($global) { "use strict";
+$hx_exports["xrfragment"] = $hx_exports["xrfragment"] || {};
+var EReg = function(r,opt) {
+ this.r = new RegExp(r,opt.split("u").join(""));
+};
+EReg.__name__ = true;
+EReg.prototype = {
+ match: function(s) {
+ if(this.r.global) {
+ this.r.lastIndex = 0;
+ }
+ this.r.m = this.r.exec(s);
+ this.r.s = s;
+ return this.r.m != null;
+ }
+ ,split: function(s) {
+ var d = "#__delim__#";
+ return s.replace(this.r,d).split(d);
+ }
+};
+var HxOverrides = function() { };
+HxOverrides.__name__ = true;
+HxOverrides.cca = function(s,index) {
+ var x = s.charCodeAt(index);
+ if(x != x) {
+ return undefined;
+ }
+ return x;
+};
+HxOverrides.substr = function(s,pos,len) {
+ if(len == null) {
+ len = s.length;
+ } else if(len < 0) {
+ if(pos == 0) {
+ len = s.length + len;
+ } else {
+ return "";
+ }
+ }
+ return s.substr(pos,len);
+};
+HxOverrides.now = function() {
+ return Date.now();
+};
+Math.__name__ = true;
+var Reflect = function() { };
+Reflect.__name__ = true;
+Reflect.field = function(o,field) {
+ try {
+ return o[field];
+ } catch( _g ) {
+ return null;
+ }
+};
+Reflect.fields = function(o) {
+ var a = [];
+ if(o != null) {
+ var hasOwnProperty = Object.prototype.hasOwnProperty;
+ for( var f in o ) {
+ if(f != "__id__" && f != "hx__closures__" && hasOwnProperty.call(o,f)) {
+ a.push(f);
+ }
+ }
+ }
+ return a;
+};
+Reflect.deleteField = function(o,field) {
+ if(!Object.prototype.hasOwnProperty.call(o,field)) {
+ return false;
+ }
+ delete(o[field]);
+ return true;
+};
+Reflect.copy = function(o) {
+ if(o == null) {
+ return null;
+ }
+ var o2 = { };
+ var _g = 0;
+ var _g1 = Reflect.fields(o);
+ while(_g < _g1.length) {
+ var f = _g1[_g];
+ ++_g;
+ o2[f] = Reflect.field(o,f);
+ }
+ return o2;
+};
+var Std = function() { };
+Std.__name__ = true;
+Std.string = function(s) {
+ return js_Boot.__string_rec(s,"");
+};
+Std.parseInt = function(x) {
+ if(x != null) {
+ var _g = 0;
+ var _g1 = x.length;
+ while(_g < _g1) {
+ var i = _g++;
+ var c = x.charCodeAt(i);
+ if(c <= 8 || c >= 14 && c != 32 && c != 45) {
+ var nc = x.charCodeAt(i + 1);
+ var v = parseInt(x,nc == 120 || nc == 88 ? 16 : 10);
+ if(isNaN(v)) {
+ return null;
+ } else {
+ return v;
+ }
+ }
+ }
+ }
+ return null;
+};
+var StringTools = function() { };
+StringTools.__name__ = true;
+StringTools.isSpace = function(s,pos) {
+ var c = HxOverrides.cca(s,pos);
+ if(!(c > 8 && c < 14)) {
+ return c == 32;
+ } else {
+ return true;
+ }
+};
+StringTools.ltrim = function(s) {
+ var l = s.length;
+ var r = 0;
+ while(r < l && StringTools.isSpace(s,r)) ++r;
+ if(r > 0) {
+ return HxOverrides.substr(s,r,l - r);
+ } else {
+ return s;
+ }
+};
+StringTools.rtrim = function(s) {
+ var l = s.length;
+ var r = 0;
+ while(r < l && StringTools.isSpace(s,l - r - 1)) ++r;
+ if(r > 0) {
+ return HxOverrides.substr(s,0,l - r);
+ } else {
+ return s;
+ }
+};
+StringTools.trim = function(s) {
+ return StringTools.ltrim(StringTools.rtrim(s));
+};
+var haxe_iterators_ArrayIterator = function(array) {
+ this.current = 0;
+ this.array = array;
+};
+haxe_iterators_ArrayIterator.__name__ = true;
+haxe_iterators_ArrayIterator.prototype = {
+ hasNext: function() {
+ return this.current < this.array.length;
+ }
+ ,next: function() {
+ return this.array[this.current++];
+ }
+};
+var js_Boot = function() { };
+js_Boot.__name__ = true;
+js_Boot.__string_rec = function(o,s) {
+ if(o == null) {
+ return "null";
+ }
+ if(s.length >= 5) {
+ return "<...>";
+ }
+ var t = typeof(o);
+ if(t == "function" && (o.__name__ || o.__ename__)) {
+ t = "object";
+ }
+ switch(t) {
+ case "function":
+ return "";
+ case "object":
+ if(((o) instanceof Array)) {
+ var str = "[";
+ s += "\t";
+ var _g = 0;
+ var _g1 = o.length;
+ while(_g < _g1) {
+ var i = _g++;
+ str += (i > 0 ? "," : "") + js_Boot.__string_rec(o[i],s);
+ }
+ str += "]";
+ return str;
+ }
+ var tostr;
+ try {
+ tostr = o.toString;
+ } catch( _g ) {
+ return "???";
+ }
+ if(tostr != null && tostr != Object.toString && typeof(tostr) == "function") {
+ var s2 = o.toString();
+ if(s2 != "[object Object]") {
+ return s2;
+ }
+ }
+ var str = "{\n";
+ s += "\t";
+ var hasp = o.hasOwnProperty != null;
+ var k = null;
+ for( k in o ) {
+ if(hasp && !o.hasOwnProperty(k)) {
+ continue;
+ }
+ if(k == "prototype" || k == "__class__" || k == "__super__" || k == "__interfaces__" || k == "__properties__") {
+ continue;
+ }
+ if(str.length != 2) {
+ str += ", \n";
+ }
+ str += s + k + " : " + js_Boot.__string_rec(o[k],s);
+ }
+ s = s.substring(1);
+ str += "\n" + s + "}";
+ return str;
+ case "string":
+ return o;
+ default:
+ return String(o);
+ }
+};
+var xrfragment_Filter = $hx_exports["xrfragment"]["Filter"] = function(str) {
+ this.q = { };
+ this.str = "";
+ if(str != null) {
+ this.parse(str);
+ }
+};
+xrfragment_Filter.__name__ = true;
+xrfragment_Filter.prototype = {
+ toObject: function() {
+ return Reflect.copy(this.q);
+ }
+ ,get: function() {
+ return Reflect.copy(this.q);
+ }
+ ,parse: function(str) {
+ var token = str.split(" ");
+ var q = { };
+ var process = function(str,prefix) {
+ if(prefix == null) {
+ prefix = "";
+ }
+ str = StringTools.trim(str);
+ var k = str.split("=")[0];
+ var v = str.split("=")[1];
+ var filter = { };
+ if(q[prefix + k]) {
+ filter = q[prefix + k];
+ }
+ if(xrfragment_XRF.isProp.match(str)) {
+ var oper = "";
+ if(str.indexOf(">") != -1) {
+ oper = ">";
+ }
+ if(str.indexOf("<") != -1) {
+ oper = "<";
+ }
+ if(xrfragment_XRF.isExclude.match(k)) {
+ k = HxOverrides.substr(k,1,null);
+ }
+ v = HxOverrides.substr(v,oper.length,null);
+ if(oper.length == 0) {
+ oper = "=";
+ }
+ var rule = { };
+ if(xrfragment_XRF.isNumber.match(v)) {
+ rule[oper] = parseFloat(v);
+ } else {
+ rule[oper] = v;
+ }
+ q["expr"] = rule;
+ }
+ var value = xrfragment_XRF.isDeep.match(str) ? k.split("*").length - 1 : 0;
+ q["deep"] = value;
+ var value = xrfragment_XRF.isExclude.match(str) ? false : true;
+ q["show"] = value;
+ var value = k.replace(xrfragment_XRF.operators.r,"");
+ q["key"] = value;
+ q["value"] = v;
+ };
+ var _g = 0;
+ var _g1 = token.length;
+ while(_g < _g1) {
+ var i = _g++;
+ process(token[i]);
+ }
+ return this.q = q;
+ }
+ ,test: function(obj) {
+ var qualify = false;
+ var _g = 0;
+ var _g1 = Reflect.fields(obj);
+ while(_g < _g1.length) {
+ var k = _g1[_g];
+ ++_g;
+ var v = Std.string(Reflect.field(obj,k));
+ if(this.testProperty(k,v)) {
+ qualify = true;
+ }
+ }
+ var _g = 0;
+ var _g1 = Reflect.fields(obj);
+ while(_g < _g1.length) {
+ var k = _g1[_g];
+ ++_g;
+ var v = Std.string(Reflect.field(obj,k));
+ if(this.testProperty(k,v,true)) {
+ qualify = false;
+ }
+ }
+ return qualify;
+ }
+ ,testProperty: function(property,value,exclude) {
+ var conds = 0;
+ var fails = 0;
+ var qualify = 0;
+ var testprop = function(expr) {
+ conds += 1;
+ fails += expr ? 0 : 1;
+ return expr;
+ };
+ if(this.q[value] != null) {
+ var v = this.q[value];
+ if(v[property] != null) {
+ return v[property];
+ }
+ }
+ if(Reflect.field(this.q,"expr")) {
+ var f = Reflect.field(this.q,"expr");
+ if(!Reflect.field(this.q,"show")) {
+ if(Reflect.field(f,"!=") != null && testprop((value == null ? "null" : "" + value) == Std.string(Reflect.field(f,"!="))) && exclude) {
+ ++qualify;
+ }
+ } else {
+ if(Reflect.field(f,"*") != null && testprop(parseFloat(value) != null)) {
+ ++qualify;
+ }
+ if(Reflect.field(f,">") != null && testprop(parseFloat(value) >= parseFloat(Reflect.field(f,">")))) {
+ ++qualify;
+ }
+ if(Reflect.field(f,"<") != null && testprop(parseFloat(value) <= parseFloat(Reflect.field(f,"<")))) {
+ ++qualify;
+ }
+ if(Reflect.field(f,"=") != null && (testprop(value == Reflect.field(f,"=")) || testprop(parseFloat(value) == parseFloat(Reflect.field(f,"="))))) {
+ ++qualify;
+ }
+ }
+ }
+ return qualify > 0;
+ }
+};
+var xrfragment_Parser = $hx_exports["xrfragment"]["Parser"] = function() { };
+xrfragment_Parser.__name__ = true;
+xrfragment_Parser.parse = function(key,value,store,index) {
+ var Frag_h = Object.create(null);
+ Frag_h["#"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_PREDEFINED_VIEW | xrfragment_XRF.PV_EXECUTE;
+ Frag_h["src"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_URL;
+ Frag_h["href"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_URL | xrfragment_XRF.T_PREDEFINED_VIEW;
+ Frag_h["tag"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["pos"] = xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_VECTOR3 | xrfragment_XRF.T_STRING | xrfragment_XRF.T_STRING_OBJ | xrfragment_XRF.METADATA | xrfragment_XRF.NAVIGATOR;
+ Frag_h["rot"] = xrfragment_XRF.QUERY_OPERATOR | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_VECTOR3 | xrfragment_XRF.METADATA | xrfragment_XRF.NAVIGATOR;
+ Frag_h["t"] = xrfragment_XRF.ASSET | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_FLOAT | xrfragment_XRF.T_VECTOR2 | xrfragment_XRF.T_STRING | xrfragment_XRF.NAVIGATOR | xrfragment_XRF.METADATA;
+ Frag_h["tv"] = xrfragment_XRF.ASSET | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_FLOAT | xrfragment_XRF.T_VECTOR2 | xrfragment_XRF.T_VECTOR3 | xrfragment_XRF.NAVIGATOR | xrfragment_XRF.METADATA;
+ Frag_h["namespace"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["SPDX"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["unit"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["description"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["session"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_URL | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.NAVIGATOR | xrfragment_XRF.METADATA | xrfragment_XRF.PROMPT;
+ var keyStripped = key.replace(xrfragment_XRF.operators.r,"");
+ var isPVDynamic = key.length > 0 && !Object.prototype.hasOwnProperty.call(Frag_h,key);
+ var isPVDefault = value.length == 0 && key.length > 0 && key == "#";
+ if(isPVDynamic) {
+ var v = new xrfragment_XRF(key,xrfragment_XRF.PV_EXECUTE | xrfragment_XRF.NAVIGATOR,index);
+ v.validate(value);
+ store[keyStripped] = v;
+ return true;
+ }
+ var v = new xrfragment_XRF(key,Frag_h[key],index);
+ if(Object.prototype.hasOwnProperty.call(Frag_h,key)) {
+ if(!v.validate(value)) {
+ console.log("src/xrfragment/Parser.hx:66:","⚠ fragment '" + key + "' has incompatible value (" + value + ")");
+ return false;
+ }
+ store[keyStripped] = v;
+ if(xrfragment_Parser.debug) {
+ console.log("src/xrfragment/Parser.hx:70:","✔ " + key + ": " + v.string);
+ }
+ } else {
+ if(typeof(value) == "string") {
+ v.guessType(v,value);
+ }
+ v.noXRF = true;
+ store[keyStripped] = v;
+ }
+ return true;
+};
+var xrfragment_URI = $hx_exports["xrfragment"]["URI"] = function() { };
+xrfragment_URI.__name__ = true;
+xrfragment_URI.parse = function(url,filter) {
+ var store = { };
+ if(url == null || url.indexOf("#") == -1) {
+ return store;
+ }
+ var fragment = url.split("#");
+ var splitArray = fragment[1].split("&");
+ var _g = 0;
+ var _g1 = splitArray.length;
+ while(_g < _g1) {
+ var i = _g++;
+ var splitByEqual = splitArray[i].split("=");
+ var regexPlus = new EReg("\\+","g");
+ var key = splitByEqual[0];
+ var value = "";
+ if(splitByEqual.length > 1) {
+ var s = regexPlus.split(splitByEqual[1]).join(" ");
+ value = decodeURIComponent(s.split("+").join(" "));
+ }
+ var ok = xrfragment_Parser.parse(key,value,store,i);
+ }
+ if(filter != null && filter != 0) {
+ var _g = 0;
+ var _g1 = Reflect.fields(store);
+ while(_g < _g1.length) {
+ var key = _g1[_g];
+ ++_g;
+ var xrf = store[key];
+ if(!xrf.is(filter)) {
+ Reflect.deleteField(store,key);
+ }
+ }
+ }
+ return store;
+};
+var xrfragment_XRF = $hx_exports["xrfragment"]["XRF"] = function(_fragment,_flags,_index) {
+ this.fragment = _fragment;
+ this.flags = _flags;
+ this.index = _index;
+};
+xrfragment_XRF.__name__ = true;
+xrfragment_XRF.set = function(flag,flags) {
+ return flags | flag;
+};
+xrfragment_XRF.unset = function(flag,flags) {
+ return flags & ~flag;
+};
+xrfragment_XRF.prototype = {
+ is: function(flag) {
+ var v = this.flags;
+ if(!(typeof(v) == "number" && ((v | 0) === v))) {
+ this.flags = 0;
+ }
+ return (this.flags & flag) != 0;
+ }
+ ,validate: function(value) {
+ this.guessType(this,value);
+ var ok = true;
+ if(!this.is(xrfragment_XRF.T_FLOAT) && this.is(xrfragment_XRF.T_VECTOR2) && !(typeof(this.x) == "number" && typeof(this.y) == "number")) {
+ ok = false;
+ }
+ if(!(this.is(xrfragment_XRF.T_VECTOR2) || this.is(xrfragment_XRF.T_STRING)) && this.is(xrfragment_XRF.T_VECTOR3) && !(typeof(this.x) == "number" && typeof(this.y) == "number" && typeof(this.z) == "number")) {
+ ok = false;
+ }
+ return ok;
+ }
+ ,guessType: function(v,str) {
+ v.string = str;
+ if(typeof(str) != "string") {
+ return;
+ }
+ if(str.length > 0) {
+ if(str.split(",").length > 1) {
+ var xyzw = str.split(",");
+ if(xyzw.length > 0) {
+ v.x = parseFloat(xyzw[0]);
+ }
+ if(xyzw.length > 1) {
+ v.y = parseFloat(xyzw[1]);
+ }
+ if(xyzw.length > 2) {
+ v.z = parseFloat(xyzw[2]);
+ }
+ if(xyzw.length > 3) {
+ v.w = parseFloat(xyzw[3]);
+ }
+ }
+ if(xrfragment_XRF.isColor.match(str)) {
+ v.color = str;
+ }
+ if(xrfragment_XRF.isFloat.match(str)) {
+ v.x = parseFloat(str);
+ v.float = v.x;
+ }
+ if(xrfragment_XRF.isInt.match(str)) {
+ v.int = Std.parseInt(str);
+ v.x = v.int;
+ }
+ v.filter = new xrfragment_Filter(v.fragment + "=" + v.string);
+ } else {
+ v.filter = new xrfragment_Filter(v.fragment);
+ }
+ }
+};
+if(typeof(performance) != "undefined" ? typeof(performance.now) == "function" : false) {
+ HxOverrides.now = performance.now.bind(performance);
+}
+String.__name__ = true;
+Array.__name__ = true;
+js_Boot.__toStr = ({ }).toString;
+xrfragment_Parser.error = "";
+xrfragment_Parser.debug = false;
+xrfragment_XRF.ASSET = 1;
+xrfragment_XRF.PROP_BIND = 2;
+xrfragment_XRF.QUERY_OPERATOR = 4;
+xrfragment_XRF.PROMPT = 8;
+xrfragment_XRF.ROUNDROBIN = 16;
+xrfragment_XRF.NAVIGATOR = 32;
+xrfragment_XRF.METADATA = 64;
+xrfragment_XRF.PV_OVERRIDE = 128;
+xrfragment_XRF.PV_EXECUTE = 256;
+xrfragment_XRF.T_COLOR = 8192;
+xrfragment_XRF.T_INT = 16384;
+xrfragment_XRF.T_FLOAT = 32768;
+xrfragment_XRF.T_VECTOR2 = 65536;
+xrfragment_XRF.T_VECTOR3 = 131072;
+xrfragment_XRF.T_URL = 262144;
+xrfragment_XRF.T_PREDEFINED_VIEW = 524288;
+xrfragment_XRF.T_STRING = 1048576;
+xrfragment_XRF.T_STRING_OBJ = 2097152;
+xrfragment_XRF.T_STRING_OBJ_PROP = 4194304;
+xrfragment_XRF.isColor = new EReg("^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$","");
+xrfragment_XRF.isInt = new EReg("^[-0-9]+$","");
+xrfragment_XRF.isFloat = new EReg("^[-0-9]+\\.[0-9]+$","");
+xrfragment_XRF.isVector = new EReg("([,]+|\\w)","");
+xrfragment_XRF.isUrl = new EReg("(://)?\\..*","");
+xrfragment_XRF.isUrlOrPretypedView = new EReg("(^#|://)?\\..*","");
+xrfragment_XRF.isString = new EReg(".*","");
+xrfragment_XRF.operators = new EReg("(^-|[\\*]+)","");
+xrfragment_XRF.isProp = new EReg("^.*=[><=]?","");
+xrfragment_XRF.isExclude = new EReg("^-","");
+xrfragment_XRF.isDeep = new EReg("\\*","");
+xrfragment_XRF.isNumber = new EReg("^[0-9\\.]+$","");
+})({});
+var xrfragment = $hx_exports["xrfragment"];
+export default xrfragment;
+var $hx_exports = typeof exports != "undefined" ? exports : typeof window != "undefined" ? window : typeof self != "undefined" ? self : this;
+(function ($global) { "use strict";
+$hx_exports["xrfragment"] = $hx_exports["xrfragment"] || {};
+var EReg = function(r,opt) {
+ this.r = new RegExp(r,opt.split("u").join(""));
+};
+EReg.__name__ = true;
+EReg.prototype = {
+ match: function(s) {
+ if(this.r.global) {
+ this.r.lastIndex = 0;
+ }
+ this.r.m = this.r.exec(s);
+ this.r.s = s;
+ return this.r.m != null;
+ }
+ ,split: function(s) {
+ var d = "#__delim__#";
+ return s.replace(this.r,d).split(d);
+ }
+};
+var HxOverrides = function() { };
+HxOverrides.__name__ = true;
+HxOverrides.cca = function(s,index) {
+ var x = s.charCodeAt(index);
+ if(x != x) {
+ return undefined;
+ }
+ return x;
+};
+HxOverrides.substr = function(s,pos,len) {
+ if(len == null) {
+ len = s.length;
+ } else if(len < 0) {
+ if(pos == 0) {
+ len = s.length + len;
+ } else {
+ return "";
+ }
+ }
+ return s.substr(pos,len);
+};
+HxOverrides.now = function() {
+ return Date.now();
+};
+Math.__name__ = true;
+var Reflect = function() { };
+Reflect.__name__ = true;
+Reflect.field = function(o,field) {
+ try {
+ return o[field];
+ } catch( _g ) {
+ return null;
+ }
+};
+Reflect.fields = function(o) {
+ var a = [];
+ if(o != null) {
+ var hasOwnProperty = Object.prototype.hasOwnProperty;
+ for( var f in o ) {
+ if(f != "__id__" && f != "hx__closures__" && hasOwnProperty.call(o,f)) {
+ a.push(f);
+ }
+ }
+ }
+ return a;
+};
+Reflect.deleteField = function(o,field) {
+ if(!Object.prototype.hasOwnProperty.call(o,field)) {
+ return false;
+ }
+ delete(o[field]);
+ return true;
+};
+Reflect.copy = function(o) {
+ if(o == null) {
+ return null;
+ }
+ var o2 = { };
+ var _g = 0;
+ var _g1 = Reflect.fields(o);
+ while(_g < _g1.length) {
+ var f = _g1[_g];
+ ++_g;
+ o2[f] = Reflect.field(o,f);
+ }
+ return o2;
+};
+var Std = function() { };
+Std.__name__ = true;
+Std.string = function(s) {
+ return js_Boot.__string_rec(s,"");
+};
+Std.parseInt = function(x) {
+ if(x != null) {
+ var _g = 0;
+ var _g1 = x.length;
+ while(_g < _g1) {
+ var i = _g++;
+ var c = x.charCodeAt(i);
+ if(c <= 8 || c >= 14 && c != 32 && c != 45) {
+ var nc = x.charCodeAt(i + 1);
+ var v = parseInt(x,nc == 120 || nc == 88 ? 16 : 10);
+ if(isNaN(v)) {
+ return null;
+ } else {
+ return v;
+ }
+ }
+ }
+ }
+ return null;
+};
+var StringTools = function() { };
+StringTools.__name__ = true;
+StringTools.isSpace = function(s,pos) {
+ var c = HxOverrides.cca(s,pos);
+ if(!(c > 8 && c < 14)) {
+ return c == 32;
+ } else {
+ return true;
+ }
+};
+StringTools.ltrim = function(s) {
+ var l = s.length;
+ var r = 0;
+ while(r < l && StringTools.isSpace(s,r)) ++r;
+ if(r > 0) {
+ return HxOverrides.substr(s,r,l - r);
+ } else {
+ return s;
+ }
+};
+StringTools.rtrim = function(s) {
+ var l = s.length;
+ var r = 0;
+ while(r < l && StringTools.isSpace(s,l - r - 1)) ++r;
+ if(r > 0) {
+ return HxOverrides.substr(s,0,l - r);
+ } else {
+ return s;
+ }
+};
+StringTools.trim = function(s) {
+ return StringTools.ltrim(StringTools.rtrim(s));
+};
+var haxe_iterators_ArrayIterator = function(array) {
+ this.current = 0;
+ this.array = array;
+};
+haxe_iterators_ArrayIterator.__name__ = true;
+haxe_iterators_ArrayIterator.prototype = {
+ hasNext: function() {
+ return this.current < this.array.length;
+ }
+ ,next: function() {
+ return this.array[this.current++];
+ }
+};
+var js_Boot = function() { };
+js_Boot.__name__ = true;
+js_Boot.__string_rec = function(o,s) {
+ if(o == null) {
+ return "null";
+ }
+ if(s.length >= 5) {
+ return "<...>";
+ }
+ var t = typeof(o);
+ if(t == "function" && (o.__name__ || o.__ename__)) {
+ t = "object";
+ }
+ switch(t) {
+ case "function":
+ return "";
+ case "object":
+ if(((o) instanceof Array)) {
+ var str = "[";
+ s += "\t";
+ var _g = 0;
+ var _g1 = o.length;
+ while(_g < _g1) {
+ var i = _g++;
+ str += (i > 0 ? "," : "") + js_Boot.__string_rec(o[i],s);
+ }
+ str += "]";
+ return str;
+ }
+ var tostr;
+ try {
+ tostr = o.toString;
+ } catch( _g ) {
+ return "???";
+ }
+ if(tostr != null && tostr != Object.toString && typeof(tostr) == "function") {
+ var s2 = o.toString();
+ if(s2 != "[object Object]") {
+ return s2;
+ }
+ }
+ var str = "{\n";
+ s += "\t";
+ var hasp = o.hasOwnProperty != null;
+ var k = null;
+ for( k in o ) {
+ if(hasp && !o.hasOwnProperty(k)) {
+ continue;
+ }
+ if(k == "prototype" || k == "__class__" || k == "__super__" || k == "__interfaces__" || k == "__properties__") {
+ continue;
+ }
+ if(str.length != 2) {
+ str += ", \n";
+ }
+ str += s + k + " : " + js_Boot.__string_rec(o[k],s);
+ }
+ s = s.substring(1);
+ str += "\n" + s + "}";
+ return str;
+ case "string":
+ return o;
+ default:
+ return String(o);
+ }
+};
+var xrfragment_Filter = $hx_exports["xrfragment"]["Filter"] = function(str) {
+ this.q = { };
+ this.str = "";
+ if(str != null) {
+ this.parse(str);
+ }
+};
+xrfragment_Filter.__name__ = true;
+xrfragment_Filter.prototype = {
+ toObject: function() {
+ return Reflect.copy(this.q);
+ }
+ ,get: function() {
+ return Reflect.copy(this.q);
+ }
+ ,parse: function(str) {
+ var token = str.split(" ");
+ var q = { };
+ var process = function(str,prefix) {
+ if(prefix == null) {
+ prefix = "";
+ }
+ str = StringTools.trim(str);
+ var k = str.split("=")[0];
+ var v = str.split("=")[1];
+ var filter = { };
+ if(q[prefix + k]) {
+ filter = q[prefix + k];
+ }
+ if(xrfragment_XRF.isProp.match(str)) {
+ var oper = "";
+ if(str.indexOf(">") != -1) {
+ oper = ">";
+ }
+ if(str.indexOf("<") != -1) {
+ oper = "<";
+ }
+ if(xrfragment_XRF.isExclude.match(k)) {
+ k = HxOverrides.substr(k,1,null);
+ }
+ v = HxOverrides.substr(v,oper.length,null);
+ if(oper.length == 0) {
+ oper = "=";
+ }
+ var rule = { };
+ if(xrfragment_XRF.isNumber.match(v)) {
+ rule[oper] = parseFloat(v);
+ } else {
+ rule[oper] = v;
+ }
+ q["expr"] = rule;
+ }
+ var value = xrfragment_XRF.isDeep.match(str) ? k.split("*").length - 1 : 0;
+ q["deep"] = value;
+ var value = xrfragment_XRF.isExclude.match(str) ? false : true;
+ q["show"] = value;
+ var value = k.replace(xrfragment_XRF.operators.r,"");
+ q["key"] = value;
+ q["value"] = v;
+ };
+ var _g = 0;
+ var _g1 = token.length;
+ while(_g < _g1) {
+ var i = _g++;
+ process(token[i]);
+ }
+ return this.q = q;
+ }
+ ,test: function(obj) {
+ var qualify = false;
+ var _g = 0;
+ var _g1 = Reflect.fields(obj);
+ while(_g < _g1.length) {
+ var k = _g1[_g];
+ ++_g;
+ var v = Std.string(Reflect.field(obj,k));
+ if(this.testProperty(k,v)) {
+ qualify = true;
+ }
+ }
+ var _g = 0;
+ var _g1 = Reflect.fields(obj);
+ while(_g < _g1.length) {
+ var k = _g1[_g];
+ ++_g;
+ var v = Std.string(Reflect.field(obj,k));
+ if(this.testProperty(k,v,true)) {
+ qualify = false;
+ }
+ }
+ return qualify;
+ }
+ ,testProperty: function(property,value,exclude) {
+ var conds = 0;
+ var fails = 0;
+ var qualify = 0;
+ var testprop = function(expr) {
+ conds += 1;
+ fails += expr ? 0 : 1;
+ return expr;
+ };
+ if(this.q[value] != null) {
+ var v = this.q[value];
+ if(v[property] != null) {
+ return v[property];
+ }
+ }
+ if(Reflect.field(this.q,"expr")) {
+ var f = Reflect.field(this.q,"expr");
+ if(!Reflect.field(this.q,"show")) {
+ if(Reflect.field(f,"!=") != null && testprop((value == null ? "null" : "" + value) == Std.string(Reflect.field(f,"!="))) && exclude) {
+ ++qualify;
+ }
+ } else {
+ if(Reflect.field(f,"*") != null && testprop(parseFloat(value) != null)) {
+ ++qualify;
+ }
+ if(Reflect.field(f,">") != null && testprop(parseFloat(value) >= parseFloat(Reflect.field(f,">")))) {
+ ++qualify;
+ }
+ if(Reflect.field(f,"<") != null && testprop(parseFloat(value) <= parseFloat(Reflect.field(f,"<")))) {
+ ++qualify;
+ }
+ if(Reflect.field(f,"=") != null && (testprop(value == Reflect.field(f,"=")) || testprop(parseFloat(value) == parseFloat(Reflect.field(f,"="))))) {
+ ++qualify;
+ }
+ }
+ }
+ return qualify > 0;
+ }
+};
+var xrfragment_Parser = $hx_exports["xrfragment"]["Parser"] = function() { };
+xrfragment_Parser.__name__ = true;
+xrfragment_Parser.parse = function(key,value,store,index) {
+ var Frag_h = Object.create(null);
+ Frag_h["#"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_PREDEFINED_VIEW | xrfragment_XRF.PV_EXECUTE;
+ Frag_h["src"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_URL;
+ Frag_h["href"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_URL | xrfragment_XRF.T_PREDEFINED_VIEW;
+ Frag_h["tag"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["pos"] = xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_VECTOR3 | xrfragment_XRF.T_STRING | xrfragment_XRF.T_STRING_OBJ | xrfragment_XRF.METADATA | xrfragment_XRF.NAVIGATOR;
+ Frag_h["rot"] = xrfragment_XRF.QUERY_OPERATOR | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_VECTOR3 | xrfragment_XRF.METADATA | xrfragment_XRF.NAVIGATOR;
+ Frag_h["t"] = xrfragment_XRF.ASSET | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_FLOAT | xrfragment_XRF.T_VECTOR2 | xrfragment_XRF.T_STRING | xrfragment_XRF.NAVIGATOR | xrfragment_XRF.METADATA;
+ Frag_h["tv"] = xrfragment_XRF.ASSET | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_FLOAT | xrfragment_XRF.T_VECTOR2 | xrfragment_XRF.T_VECTOR3 | xrfragment_XRF.NAVIGATOR | xrfragment_XRF.METADATA;
+ Frag_h["namespace"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["SPDX"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["unit"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["description"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["session"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_URL | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.NAVIGATOR | xrfragment_XRF.METADATA | xrfragment_XRF.PROMPT;
+ var keyStripped = key.replace(xrfragment_XRF.operators.r,"");
+ var isPVDynamic = key.length > 0 && !Object.prototype.hasOwnProperty.call(Frag_h,key);
+ var isPVDefault = value.length == 0 && key.length > 0 && key == "#";
+ if(isPVDynamic) {
+ var v = new xrfragment_XRF(key,xrfragment_XRF.PV_EXECUTE | xrfragment_XRF.NAVIGATOR,index);
+ v.validate(value);
+ store[keyStripped] = v;
+ return true;
+ }
+ var v = new xrfragment_XRF(key,Frag_h[key],index);
+ if(Object.prototype.hasOwnProperty.call(Frag_h,key)) {
+ if(!v.validate(value)) {
+ console.log("src/xrfragment/Parser.hx:66:","⚠ fragment '" + key + "' has incompatible value (" + value + ")");
+ return false;
+ }
+ store[keyStripped] = v;
+ if(xrfragment_Parser.debug) {
+ console.log("src/xrfragment/Parser.hx:70:","✔ " + key + ": " + v.string);
+ }
+ } else {
+ if(typeof(value) == "string") {
+ v.guessType(v,value);
+ }
+ v.noXRF = true;
+ store[keyStripped] = v;
+ }
+ return true;
+};
+var xrfragment_URI = $hx_exports["xrfragment"]["URI"] = function() { };
+xrfragment_URI.__name__ = true;
+xrfragment_URI.parse = function(url,filter) {
+ var store = { };
+ if(url == null || url.indexOf("#") == -1) {
+ return store;
+ }
+ var fragment = url.split("#");
+ var splitArray = fragment[1].split("&");
+ var _g = 0;
+ var _g1 = splitArray.length;
+ while(_g < _g1) {
+ var i = _g++;
+ var splitByEqual = splitArray[i].split("=");
+ var regexPlus = new EReg("\\+","g");
+ var key = splitByEqual[0];
+ var value = "";
+ if(splitByEqual.length > 1) {
+ var s = regexPlus.split(splitByEqual[1]).join(" ");
+ value = decodeURIComponent(s.split("+").join(" "));
+ }
+ var ok = xrfragment_Parser.parse(key,value,store,i);
+ }
+ if(filter != null && filter != 0) {
+ var _g = 0;
+ var _g1 = Reflect.fields(store);
+ while(_g < _g1.length) {
+ var key = _g1[_g];
+ ++_g;
+ var xrf = store[key];
+ if(!xrf.is(filter)) {
+ Reflect.deleteField(store,key);
+ }
+ }
+ }
+ return store;
+};
+var xrfragment_XRF = $hx_exports["xrfragment"]["XRF"] = function(_fragment,_flags,_index) {
+ this.fragment = _fragment;
+ this.flags = _flags;
+ this.index = _index;
+};
+xrfragment_XRF.__name__ = true;
+xrfragment_XRF.set = function(flag,flags) {
+ return flags | flag;
+};
+xrfragment_XRF.unset = function(flag,flags) {
+ return flags & ~flag;
+};
+xrfragment_XRF.prototype = {
+ is: function(flag) {
+ var v = this.flags;
+ if(!(typeof(v) == "number" && ((v | 0) === v))) {
+ this.flags = 0;
+ }
+ return (this.flags & flag) != 0;
+ }
+ ,validate: function(value) {
+ this.guessType(this,value);
+ var ok = true;
+ if(!this.is(xrfragment_XRF.T_FLOAT) && this.is(xrfragment_XRF.T_VECTOR2) && !(typeof(this.x) == "number" && typeof(this.y) == "number")) {
+ ok = false;
+ }
+ if(!(this.is(xrfragment_XRF.T_VECTOR2) || this.is(xrfragment_XRF.T_STRING)) && this.is(xrfragment_XRF.T_VECTOR3) && !(typeof(this.x) == "number" && typeof(this.y) == "number" && typeof(this.z) == "number")) {
+ ok = false;
+ }
+ return ok;
+ }
+ ,guessType: function(v,str) {
+ v.string = str;
+ if(typeof(str) != "string") {
+ return;
+ }
+ if(str.length > 0) {
+ if(str.split(",").length > 1) {
+ var xyzw = str.split(",");
+ if(xyzw.length > 0) {
+ v.x = parseFloat(xyzw[0]);
+ }
+ if(xyzw.length > 1) {
+ v.y = parseFloat(xyzw[1]);
+ }
+ if(xyzw.length > 2) {
+ v.z = parseFloat(xyzw[2]);
+ }
+ if(xyzw.length > 3) {
+ v.w = parseFloat(xyzw[3]);
+ }
+ }
+ if(xrfragment_XRF.isColor.match(str)) {
+ v.color = str;
+ }
+ if(xrfragment_XRF.isFloat.match(str)) {
+ v.x = parseFloat(str);
+ v.float = v.x;
+ }
+ if(xrfragment_XRF.isInt.match(str)) {
+ v.int = Std.parseInt(str);
+ v.x = v.int;
+ }
+ v.filter = new xrfragment_Filter(v.fragment + "=" + v.string);
+ } else {
+ v.filter = new xrfragment_Filter(v.fragment);
+ }
+ }
+};
+if(typeof(performance) != "undefined" ? typeof(performance.now) == "function" : false) {
+ HxOverrides.now = performance.now.bind(performance);
+}
+String.__name__ = true;
+Array.__name__ = true;
+js_Boot.__toStr = ({ }).toString;
+xrfragment_Parser.error = "";
+xrfragment_Parser.debug = false;
+xrfragment_XRF.ASSET = 1;
+xrfragment_XRF.PROP_BIND = 2;
+xrfragment_XRF.QUERY_OPERATOR = 4;
+xrfragment_XRF.PROMPT = 8;
+xrfragment_XRF.ROUNDROBIN = 16;
+xrfragment_XRF.NAVIGATOR = 32;
+xrfragment_XRF.METADATA = 64;
+xrfragment_XRF.PV_OVERRIDE = 128;
+xrfragment_XRF.PV_EXECUTE = 256;
+xrfragment_XRF.T_COLOR = 8192;
+xrfragment_XRF.T_INT = 16384;
+xrfragment_XRF.T_FLOAT = 32768;
+xrfragment_XRF.T_VECTOR2 = 65536;
+xrfragment_XRF.T_VECTOR3 = 131072;
+xrfragment_XRF.T_URL = 262144;
+xrfragment_XRF.T_PREDEFINED_VIEW = 524288;
+xrfragment_XRF.T_STRING = 1048576;
+xrfragment_XRF.T_STRING_OBJ = 2097152;
+xrfragment_XRF.T_STRING_OBJ_PROP = 4194304;
+xrfragment_XRF.isColor = new EReg("^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$","");
+xrfragment_XRF.isInt = new EReg("^[-0-9]+$","");
+xrfragment_XRF.isFloat = new EReg("^[-0-9]+\\.[0-9]+$","");
+xrfragment_XRF.isVector = new EReg("([,]+|\\w)","");
+xrfragment_XRF.isUrl = new EReg("(://)?\\..*","");
+xrfragment_XRF.isUrlOrPretypedView = new EReg("(^#|://)?\\..*","");
+xrfragment_XRF.isString = new EReg(".*","");
+xrfragment_XRF.operators = new EReg("(^-|[\\*]+)","");
+xrfragment_XRF.isProp = new EReg("^.*=[><=]?","");
+xrfragment_XRF.isExclude = new EReg("^-","");
+xrfragment_XRF.isDeep = new EReg("\\*","");
+xrfragment_XRF.isNumber = new EReg("^[0-9\\.]+$","");
+})({});
+var xrfragment = $hx_exports["xrfragment"];
+export default xrfragment;
+var $hx_exports = typeof exports != "undefined" ? exports : typeof window != "undefined" ? window : typeof self != "undefined" ? self : this;
+(function ($global) { "use strict";
+$hx_exports["xrfragment"] = $hx_exports["xrfragment"] || {};
+var EReg = function(r,opt) {
+ this.r = new RegExp(r,opt.split("u").join(""));
+};
+EReg.__name__ = true;
+EReg.prototype = {
+ match: function(s) {
+ if(this.r.global) {
+ this.r.lastIndex = 0;
+ }
+ this.r.m = this.r.exec(s);
+ this.r.s = s;
+ return this.r.m != null;
+ }
+ ,split: function(s) {
+ var d = "#__delim__#";
+ return s.replace(this.r,d).split(d);
+ }
+};
+var HxOverrides = function() { };
+HxOverrides.__name__ = true;
+HxOverrides.cca = function(s,index) {
+ var x = s.charCodeAt(index);
+ if(x != x) {
+ return undefined;
+ }
+ return x;
+};
+HxOverrides.substr = function(s,pos,len) {
+ if(len == null) {
+ len = s.length;
+ } else if(len < 0) {
+ if(pos == 0) {
+ len = s.length + len;
+ } else {
+ return "";
+ }
+ }
+ return s.substr(pos,len);
+};
+HxOverrides.now = function() {
+ return Date.now();
+};
+Math.__name__ = true;
+var Reflect = function() { };
+Reflect.__name__ = true;
+Reflect.field = function(o,field) {
+ try {
+ return o[field];
+ } catch( _g ) {
+ return null;
+ }
+};
+Reflect.fields = function(o) {
+ var a = [];
+ if(o != null) {
+ var hasOwnProperty = Object.prototype.hasOwnProperty;
+ for( var f in o ) {
+ if(f != "__id__" && f != "hx__closures__" && hasOwnProperty.call(o,f)) {
+ a.push(f);
+ }
+ }
+ }
+ return a;
+};
+Reflect.deleteField = function(o,field) {
+ if(!Object.prototype.hasOwnProperty.call(o,field)) {
+ return false;
+ }
+ delete(o[field]);
+ return true;
+};
+Reflect.copy = function(o) {
+ if(o == null) {
+ return null;
+ }
+ var o2 = { };
+ var _g = 0;
+ var _g1 = Reflect.fields(o);
+ while(_g < _g1.length) {
+ var f = _g1[_g];
+ ++_g;
+ o2[f] = Reflect.field(o,f);
+ }
+ return o2;
+};
+var Std = function() { };
+Std.__name__ = true;
+Std.string = function(s) {
+ return js_Boot.__string_rec(s,"");
+};
+Std.parseInt = function(x) {
+ if(x != null) {
+ var _g = 0;
+ var _g1 = x.length;
+ while(_g < _g1) {
+ var i = _g++;
+ var c = x.charCodeAt(i);
+ if(c <= 8 || c >= 14 && c != 32 && c != 45) {
+ var nc = x.charCodeAt(i + 1);
+ var v = parseInt(x,nc == 120 || nc == 88 ? 16 : 10);
+ if(isNaN(v)) {
+ return null;
+ } else {
+ return v;
+ }
+ }
+ }
+ }
+ return null;
+};
+var StringTools = function() { };
+StringTools.__name__ = true;
+StringTools.isSpace = function(s,pos) {
+ var c = HxOverrides.cca(s,pos);
+ if(!(c > 8 && c < 14)) {
+ return c == 32;
+ } else {
+ return true;
+ }
+};
+StringTools.ltrim = function(s) {
+ var l = s.length;
+ var r = 0;
+ while(r < l && StringTools.isSpace(s,r)) ++r;
+ if(r > 0) {
+ return HxOverrides.substr(s,r,l - r);
+ } else {
+ return s;
+ }
+};
+StringTools.rtrim = function(s) {
+ var l = s.length;
+ var r = 0;
+ while(r < l && StringTools.isSpace(s,l - r - 1)) ++r;
+ if(r > 0) {
+ return HxOverrides.substr(s,0,l - r);
+ } else {
+ return s;
+ }
+};
+StringTools.trim = function(s) {
+ return StringTools.ltrim(StringTools.rtrim(s));
+};
+var haxe_iterators_ArrayIterator = function(array) {
+ this.current = 0;
+ this.array = array;
+};
+haxe_iterators_ArrayIterator.__name__ = true;
+haxe_iterators_ArrayIterator.prototype = {
+ hasNext: function() {
+ return this.current < this.array.length;
+ }
+ ,next: function() {
+ return this.array[this.current++];
+ }
+};
+var js_Boot = function() { };
+js_Boot.__name__ = true;
+js_Boot.__string_rec = function(o,s) {
+ if(o == null) {
+ return "null";
+ }
+ if(s.length >= 5) {
+ return "<...>";
+ }
+ var t = typeof(o);
+ if(t == "function" && (o.__name__ || o.__ename__)) {
+ t = "object";
+ }
+ switch(t) {
+ case "function":
+ return "";
+ case "object":
+ if(((o) instanceof Array)) {
+ var str = "[";
+ s += "\t";
+ var _g = 0;
+ var _g1 = o.length;
+ while(_g < _g1) {
+ var i = _g++;
+ str += (i > 0 ? "," : "") + js_Boot.__string_rec(o[i],s);
+ }
+ str += "]";
+ return str;
+ }
+ var tostr;
+ try {
+ tostr = o.toString;
+ } catch( _g ) {
+ return "???";
+ }
+ if(tostr != null && tostr != Object.toString && typeof(tostr) == "function") {
+ var s2 = o.toString();
+ if(s2 != "[object Object]") {
+ return s2;
+ }
+ }
+ var str = "{\n";
+ s += "\t";
+ var hasp = o.hasOwnProperty != null;
+ var k = null;
+ for( k in o ) {
+ if(hasp && !o.hasOwnProperty(k)) {
+ continue;
+ }
+ if(k == "prototype" || k == "__class__" || k == "__super__" || k == "__interfaces__" || k == "__properties__") {
+ continue;
+ }
+ if(str.length != 2) {
+ str += ", \n";
+ }
+ str += s + k + " : " + js_Boot.__string_rec(o[k],s);
+ }
+ s = s.substring(1);
+ str += "\n" + s + "}";
+ return str;
+ case "string":
+ return o;
+ default:
+ return String(o);
+ }
+};
+var xrfragment_Filter = $hx_exports["xrfragment"]["Filter"] = function(str) {
+ this.q = { };
+ this.str = "";
+ if(str != null) {
+ this.parse(str);
+ }
+};
+xrfragment_Filter.__name__ = true;
+xrfragment_Filter.prototype = {
+ toObject: function() {
+ return Reflect.copy(this.q);
+ }
+ ,get: function() {
+ return Reflect.copy(this.q);
+ }
+ ,parse: function(str) {
+ var token = str.split(" ");
+ var q = { };
+ var process = function(str,prefix) {
+ if(prefix == null) {
+ prefix = "";
+ }
+ str = StringTools.trim(str);
+ var k = str.split("=")[0];
+ var v = str.split("=")[1];
+ var filter = { };
+ if(q[prefix + k]) {
+ filter = q[prefix + k];
+ }
+ if(xrfragment_XRF.isProp.match(str)) {
+ var oper = "";
+ if(str.indexOf(">") != -1) {
+ oper = ">";
+ }
+ if(str.indexOf("<") != -1) {
+ oper = "<";
+ }
+ if(xrfragment_XRF.isExclude.match(k)) {
+ k = HxOverrides.substr(k,1,null);
+ }
+ v = HxOverrides.substr(v,oper.length,null);
+ if(oper.length == 0) {
+ oper = "=";
+ }
+ var rule = { };
+ if(xrfragment_XRF.isNumber.match(v)) {
+ rule[oper] = parseFloat(v);
+ } else {
+ rule[oper] = v;
+ }
+ q["expr"] = rule;
+ }
+ var value = xrfragment_XRF.isDeep.match(str) ? k.split("*").length - 1 : 0;
+ q["deep"] = value;
+ var value = xrfragment_XRF.isExclude.match(str) ? false : true;
+ q["show"] = value;
+ var value = k.replace(xrfragment_XRF.operators.r,"");
+ q["key"] = value;
+ q["value"] = v;
+ };
+ var _g = 0;
+ var _g1 = token.length;
+ while(_g < _g1) {
+ var i = _g++;
+ process(token[i]);
+ }
+ return this.q = q;
+ }
+ ,test: function(obj) {
+ var qualify = false;
+ var _g = 0;
+ var _g1 = Reflect.fields(obj);
+ while(_g < _g1.length) {
+ var k = _g1[_g];
+ ++_g;
+ var v = Std.string(Reflect.field(obj,k));
+ if(this.testProperty(k,v)) {
+ qualify = true;
+ }
+ }
+ var _g = 0;
+ var _g1 = Reflect.fields(obj);
+ while(_g < _g1.length) {
+ var k = _g1[_g];
+ ++_g;
+ var v = Std.string(Reflect.field(obj,k));
+ if(this.testProperty(k,v,true)) {
+ qualify = false;
+ }
+ }
+ return qualify;
+ }
+ ,testProperty: function(property,value,exclude) {
+ var conds = 0;
+ var fails = 0;
+ var qualify = 0;
+ var testprop = function(expr) {
+ conds += 1;
+ fails += expr ? 0 : 1;
+ return expr;
+ };
+ if(this.q[value] != null) {
+ var v = this.q[value];
+ if(v[property] != null) {
+ return v[property];
+ }
+ }
+ if(Reflect.field(this.q,"expr")) {
+ var f = Reflect.field(this.q,"expr");
+ if(!Reflect.field(this.q,"show")) {
+ if(Reflect.field(f,"!=") != null && testprop((value == null ? "null" : "" + value) == Std.string(Reflect.field(f,"!="))) && exclude) {
+ ++qualify;
+ }
+ } else {
+ if(Reflect.field(f,"*") != null && testprop(parseFloat(value) != null)) {
+ ++qualify;
+ }
+ if(Reflect.field(f,">") != null && testprop(parseFloat(value) >= parseFloat(Reflect.field(f,">")))) {
+ ++qualify;
+ }
+ if(Reflect.field(f,"<") != null && testprop(parseFloat(value) <= parseFloat(Reflect.field(f,"<")))) {
+ ++qualify;
+ }
+ if(Reflect.field(f,"=") != null && (testprop(value == Reflect.field(f,"=")) || testprop(parseFloat(value) == parseFloat(Reflect.field(f,"="))))) {
+ ++qualify;
+ }
+ }
+ }
+ return qualify > 0;
+ }
+};
+var xrfragment_Parser = $hx_exports["xrfragment"]["Parser"] = function() { };
+xrfragment_Parser.__name__ = true;
+xrfragment_Parser.parse = function(key,value,store,index) {
+ var Frag_h = Object.create(null);
+ Frag_h["#"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_PREDEFINED_VIEW | xrfragment_XRF.PV_EXECUTE;
+ Frag_h["src"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_URL;
+ Frag_h["href"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_URL | xrfragment_XRF.T_PREDEFINED_VIEW;
+ Frag_h["tag"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["pos"] = xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_VECTOR3 | xrfragment_XRF.T_STRING | xrfragment_XRF.T_STRING_OBJ | xrfragment_XRF.METADATA | xrfragment_XRF.NAVIGATOR;
+ Frag_h["rot"] = xrfragment_XRF.QUERY_OPERATOR | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_VECTOR3 | xrfragment_XRF.METADATA | xrfragment_XRF.NAVIGATOR;
+ Frag_h["t"] = xrfragment_XRF.ASSET | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_FLOAT | xrfragment_XRF.T_VECTOR2 | xrfragment_XRF.T_STRING | xrfragment_XRF.NAVIGATOR | xrfragment_XRF.METADATA;
+ Frag_h["tv"] = xrfragment_XRF.ASSET | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_FLOAT | xrfragment_XRF.T_VECTOR2 | xrfragment_XRF.T_VECTOR3 | xrfragment_XRF.NAVIGATOR | xrfragment_XRF.METADATA;
+ Frag_h["namespace"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["SPDX"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["unit"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["description"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["session"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_URL | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.NAVIGATOR | xrfragment_XRF.METADATA | xrfragment_XRF.PROMPT;
+ var keyStripped = key.replace(xrfragment_XRF.operators.r,"");
+ var isPVDynamic = key.length > 0 && !Object.prototype.hasOwnProperty.call(Frag_h,key);
+ var isPVDefault = value.length == 0 && key.length > 0 && key == "#";
+ if(isPVDynamic) {
+ var v = new xrfragment_XRF(key,xrfragment_XRF.PV_EXECUTE | xrfragment_XRF.NAVIGATOR,index);
+ v.validate(value);
+ store[keyStripped] = v;
+ return true;
+ }
+ var v = new xrfragment_XRF(key,Frag_h[key],index);
+ if(Object.prototype.hasOwnProperty.call(Frag_h,key)) {
+ if(!v.validate(value)) {
+ console.log("src/xrfragment/Parser.hx:66:","⚠ fragment '" + key + "' has incompatible value (" + value + ")");
+ return false;
+ }
+ store[keyStripped] = v;
+ if(xrfragment_Parser.debug) {
+ console.log("src/xrfragment/Parser.hx:70:","✔ " + key + ": " + v.string);
+ }
+ } else {
+ if(typeof(value) == "string") {
+ v.guessType(v,value);
+ }
+ v.noXRF = true;
+ store[keyStripped] = v;
+ }
+ return true;
+};
+var xrfragment_URI = $hx_exports["xrfragment"]["URI"] = function() { };
+xrfragment_URI.__name__ = true;
+xrfragment_URI.parse = function(url,filter) {
+ var store = { };
+ if(url == null || url.indexOf("#") == -1) {
+ return store;
+ }
+ var fragment = url.split("#");
+ var splitArray = fragment[1].split("&");
+ var _g = 0;
+ var _g1 = splitArray.length;
+ while(_g < _g1) {
+ var i = _g++;
+ var splitByEqual = splitArray[i].split("=");
+ var regexPlus = new EReg("\\+","g");
+ var key = splitByEqual[0];
+ var value = "";
+ if(splitByEqual.length > 1) {
+ var s = regexPlus.split(splitByEqual[1]).join(" ");
+ value = decodeURIComponent(s.split("+").join(" "));
+ }
+ var ok = xrfragment_Parser.parse(key,value,store,i);
+ }
+ if(filter != null && filter != 0) {
+ var _g = 0;
+ var _g1 = Reflect.fields(store);
+ while(_g < _g1.length) {
+ var key = _g1[_g];
+ ++_g;
+ var xrf = store[key];
+ if(!xrf.is(filter)) {
+ Reflect.deleteField(store,key);
+ }
+ }
+ }
+ return store;
+};
+var xrfragment_XRF = $hx_exports["xrfragment"]["XRF"] = function(_fragment,_flags,_index) {
+ this.fragment = _fragment;
+ this.flags = _flags;
+ this.index = _index;
+};
+xrfragment_XRF.__name__ = true;
+xrfragment_XRF.set = function(flag,flags) {
+ return flags | flag;
+};
+xrfragment_XRF.unset = function(flag,flags) {
+ return flags & ~flag;
+};
+xrfragment_XRF.prototype = {
+ is: function(flag) {
+ var v = this.flags;
+ if(!(typeof(v) == "number" && ((v | 0) === v))) {
+ this.flags = 0;
+ }
+ return (this.flags & flag) != 0;
+ }
+ ,validate: function(value) {
+ this.guessType(this,value);
+ var ok = true;
+ if(!this.is(xrfragment_XRF.T_FLOAT) && this.is(xrfragment_XRF.T_VECTOR2) && !(typeof(this.x) == "number" && typeof(this.y) == "number")) {
+ ok = false;
+ }
+ if(!(this.is(xrfragment_XRF.T_VECTOR2) || this.is(xrfragment_XRF.T_STRING)) && this.is(xrfragment_XRF.T_VECTOR3) && !(typeof(this.x) == "number" && typeof(this.y) == "number" && typeof(this.z) == "number")) {
+ ok = false;
+ }
+ return ok;
+ }
+ ,guessType: function(v,str) {
+ v.string = str;
+ if(typeof(str) != "string") {
+ return;
+ }
+ if(str.length > 0) {
+ if(str.split(",").length > 1) {
+ var xyzw = str.split(",");
+ if(xyzw.length > 0) {
+ v.x = parseFloat(xyzw[0]);
+ }
+ if(xyzw.length > 1) {
+ v.y = parseFloat(xyzw[1]);
+ }
+ if(xyzw.length > 2) {
+ v.z = parseFloat(xyzw[2]);
+ }
+ if(xyzw.length > 3) {
+ v.w = parseFloat(xyzw[3]);
+ }
+ }
+ if(xrfragment_XRF.isColor.match(str)) {
+ v.color = str;
+ }
+ if(xrfragment_XRF.isFloat.match(str)) {
+ v.x = parseFloat(str);
+ v.float = v.x;
+ }
+ if(xrfragment_XRF.isInt.match(str)) {
+ v.int = Std.parseInt(str);
+ v.x = v.int;
+ }
+ v.filter = new xrfragment_Filter(v.fragment + "=" + v.string);
+ } else {
+ v.filter = new xrfragment_Filter(v.fragment);
+ }
+ }
+};
+if(typeof(performance) != "undefined" ? typeof(performance.now) == "function" : false) {
+ HxOverrides.now = performance.now.bind(performance);
+}
+String.__name__ = true;
+Array.__name__ = true;
+js_Boot.__toStr = ({ }).toString;
+xrfragment_Parser.error = "";
+xrfragment_Parser.debug = false;
+xrfragment_XRF.ASSET = 1;
+xrfragment_XRF.PROP_BIND = 2;
+xrfragment_XRF.QUERY_OPERATOR = 4;
+xrfragment_XRF.PROMPT = 8;
+xrfragment_XRF.ROUNDROBIN = 16;
+xrfragment_XRF.NAVIGATOR = 32;
+xrfragment_XRF.METADATA = 64;
+xrfragment_XRF.PV_OVERRIDE = 128;
+xrfragment_XRF.PV_EXECUTE = 256;
+xrfragment_XRF.T_COLOR = 8192;
+xrfragment_XRF.T_INT = 16384;
+xrfragment_XRF.T_FLOAT = 32768;
+xrfragment_XRF.T_VECTOR2 = 65536;
+xrfragment_XRF.T_VECTOR3 = 131072;
+xrfragment_XRF.T_URL = 262144;
+xrfragment_XRF.T_PREDEFINED_VIEW = 524288;
+xrfragment_XRF.T_STRING = 1048576;
+xrfragment_XRF.T_STRING_OBJ = 2097152;
+xrfragment_XRF.T_STRING_OBJ_PROP = 4194304;
+xrfragment_XRF.isColor = new EReg("^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$","");
+xrfragment_XRF.isInt = new EReg("^[-0-9]+$","");
+xrfragment_XRF.isFloat = new EReg("^[-0-9]+\\.[0-9]+$","");
+xrfragment_XRF.isVector = new EReg("([,]+|\\w)","");
+xrfragment_XRF.isUrl = new EReg("(://)?\\..*","");
+xrfragment_XRF.isUrlOrPretypedView = new EReg("(^#|://)?\\..*","");
+xrfragment_XRF.isString = new EReg(".*","");
+xrfragment_XRF.operators = new EReg("(^-|[\\*]+)","");
+xrfragment_XRF.isProp = new EReg("^.*=[><=]?","");
+xrfragment_XRF.isExclude = new EReg("^-","");
+xrfragment_XRF.isDeep = new EReg("\\*","");
+xrfragment_XRF.isNumber = new EReg("^[0-9\\.]+$","");
+})({});
+var xrfragment = $hx_exports["xrfragment"];
+export default xrfragment;
+var $hx_exports = typeof exports != "undefined" ? exports : typeof window != "undefined" ? window : typeof self != "undefined" ? self : this;
+(function ($global) { "use strict";
+$hx_exports["xrfragment"] = $hx_exports["xrfragment"] || {};
+var EReg = function(r,opt) {
+ this.r = new RegExp(r,opt.split("u").join(""));
+};
+EReg.__name__ = true;
+EReg.prototype = {
+ match: function(s) {
+ if(this.r.global) {
+ this.r.lastIndex = 0;
+ }
+ this.r.m = this.r.exec(s);
+ this.r.s = s;
+ return this.r.m != null;
+ }
+ ,split: function(s) {
+ var d = "#__delim__#";
+ return s.replace(this.r,d).split(d);
+ }
+};
+var HxOverrides = function() { };
+HxOverrides.__name__ = true;
+HxOverrides.cca = function(s,index) {
+ var x = s.charCodeAt(index);
+ if(x != x) {
+ return undefined;
+ }
+ return x;
+};
+HxOverrides.substr = function(s,pos,len) {
+ if(len == null) {
+ len = s.length;
+ } else if(len < 0) {
+ if(pos == 0) {
+ len = s.length + len;
+ } else {
+ return "";
+ }
+ }
+ return s.substr(pos,len);
+};
+HxOverrides.now = function() {
+ return Date.now();
+};
+Math.__name__ = true;
+var Reflect = function() { };
+Reflect.__name__ = true;
+Reflect.field = function(o,field) {
+ try {
+ return o[field];
+ } catch( _g ) {
+ return null;
+ }
+};
+Reflect.fields = function(o) {
+ var a = [];
+ if(o != null) {
+ var hasOwnProperty = Object.prototype.hasOwnProperty;
+ for( var f in o ) {
+ if(f != "__id__" && f != "hx__closures__" && hasOwnProperty.call(o,f)) {
+ a.push(f);
+ }
+ }
+ }
+ return a;
+};
+Reflect.deleteField = function(o,field) {
+ if(!Object.prototype.hasOwnProperty.call(o,field)) {
+ return false;
+ }
+ delete(o[field]);
+ return true;
+};
+Reflect.copy = function(o) {
+ if(o == null) {
+ return null;
+ }
+ var o2 = { };
+ var _g = 0;
+ var _g1 = Reflect.fields(o);
+ while(_g < _g1.length) {
+ var f = _g1[_g];
+ ++_g;
+ o2[f] = Reflect.field(o,f);
+ }
+ return o2;
+};
+var Std = function() { };
+Std.__name__ = true;
+Std.string = function(s) {
+ return js_Boot.__string_rec(s,"");
+};
+Std.parseInt = function(x) {
+ if(x != null) {
+ var _g = 0;
+ var _g1 = x.length;
+ while(_g < _g1) {
+ var i = _g++;
+ var c = x.charCodeAt(i);
+ if(c <= 8 || c >= 14 && c != 32 && c != 45) {
+ var nc = x.charCodeAt(i + 1);
+ var v = parseInt(x,nc == 120 || nc == 88 ? 16 : 10);
+ if(isNaN(v)) {
+ return null;
+ } else {
+ return v;
+ }
+ }
+ }
+ }
+ return null;
+};
+var StringTools = function() { };
+StringTools.__name__ = true;
+StringTools.isSpace = function(s,pos) {
+ var c = HxOverrides.cca(s,pos);
+ if(!(c > 8 && c < 14)) {
+ return c == 32;
+ } else {
+ return true;
+ }
+};
+StringTools.ltrim = function(s) {
+ var l = s.length;
+ var r = 0;
+ while(r < l && StringTools.isSpace(s,r)) ++r;
+ if(r > 0) {
+ return HxOverrides.substr(s,r,l - r);
+ } else {
+ return s;
+ }
+};
+StringTools.rtrim = function(s) {
+ var l = s.length;
+ var r = 0;
+ while(r < l && StringTools.isSpace(s,l - r - 1)) ++r;
+ if(r > 0) {
+ return HxOverrides.substr(s,0,l - r);
+ } else {
+ return s;
+ }
+};
+StringTools.trim = function(s) {
+ return StringTools.ltrim(StringTools.rtrim(s));
+};
+var haxe_iterators_ArrayIterator = function(array) {
+ this.current = 0;
+ this.array = array;
+};
+haxe_iterators_ArrayIterator.__name__ = true;
+haxe_iterators_ArrayIterator.prototype = {
+ hasNext: function() {
+ return this.current < this.array.length;
+ }
+ ,next: function() {
+ return this.array[this.current++];
+ }
+};
+var js_Boot = function() { };
+js_Boot.__name__ = true;
+js_Boot.__string_rec = function(o,s) {
+ if(o == null) {
+ return "null";
+ }
+ if(s.length >= 5) {
+ return "<...>";
+ }
+ var t = typeof(o);
+ if(t == "function" && (o.__name__ || o.__ename__)) {
+ t = "object";
+ }
+ switch(t) {
+ case "function":
+ return "";
+ case "object":
+ if(((o) instanceof Array)) {
+ var str = "[";
+ s += "\t";
+ var _g = 0;
+ var _g1 = o.length;
+ while(_g < _g1) {
+ var i = _g++;
+ str += (i > 0 ? "," : "") + js_Boot.__string_rec(o[i],s);
+ }
+ str += "]";
+ return str;
+ }
+ var tostr;
+ try {
+ tostr = o.toString;
+ } catch( _g ) {
+ return "???";
+ }
+ if(tostr != null && tostr != Object.toString && typeof(tostr) == "function") {
+ var s2 = o.toString();
+ if(s2 != "[object Object]") {
+ return s2;
+ }
+ }
+ var str = "{\n";
+ s += "\t";
+ var hasp = o.hasOwnProperty != null;
+ var k = null;
+ for( k in o ) {
+ if(hasp && !o.hasOwnProperty(k)) {
+ continue;
+ }
+ if(k == "prototype" || k == "__class__" || k == "__super__" || k == "__interfaces__" || k == "__properties__") {
+ continue;
+ }
+ if(str.length != 2) {
+ str += ", \n";
+ }
+ str += s + k + " : " + js_Boot.__string_rec(o[k],s);
+ }
+ s = s.substring(1);
+ str += "\n" + s + "}";
+ return str;
+ case "string":
+ return o;
+ default:
+ return String(o);
+ }
+};
+var xrfragment_Filter = $hx_exports["xrfragment"]["Filter"] = function(str) {
+ this.q = { };
+ this.str = "";
+ if(str != null) {
+ this.parse(str);
+ }
+};
+xrfragment_Filter.__name__ = true;
+xrfragment_Filter.prototype = {
+ toObject: function() {
+ return Reflect.copy(this.q);
+ }
+ ,get: function() {
+ return Reflect.copy(this.q);
+ }
+ ,parse: function(str) {
+ var token = str.split(" ");
+ var q = { };
+ var process = function(str,prefix) {
+ if(prefix == null) {
+ prefix = "";
+ }
+ str = StringTools.trim(str);
+ var k = str.split("=")[0];
+ var v = str.split("=")[1];
+ var filter = { };
+ if(q[prefix + k]) {
+ filter = q[prefix + k];
+ }
+ if(xrfragment_XRF.isProp.match(str)) {
+ var oper = "";
+ if(str.indexOf(">") != -1) {
+ oper = ">";
+ }
+ if(str.indexOf("<") != -1) {
+ oper = "<";
+ }
+ if(xrfragment_XRF.isExclude.match(k)) {
+ k = HxOverrides.substr(k,1,null);
+ }
+ v = HxOverrides.substr(v,oper.length,null);
+ if(oper.length == 0) {
+ oper = "=";
+ }
+ var rule = { };
+ if(xrfragment_XRF.isNumber.match(v)) {
+ rule[oper] = parseFloat(v);
+ } else {
+ rule[oper] = v;
+ }
+ q["expr"] = rule;
+ }
+ var value = xrfragment_XRF.isDeep.match(str) ? k.split("*").length - 1 : 0;
+ q["deep"] = value;
+ var value = xrfragment_XRF.isExclude.match(str) ? false : true;
+ q["show"] = value;
+ var value = k.replace(xrfragment_XRF.operators.r,"");
+ q["key"] = value;
+ q["value"] = v;
+ };
+ var _g = 0;
+ var _g1 = token.length;
+ while(_g < _g1) {
+ var i = _g++;
+ process(token[i]);
+ }
+ return this.q = q;
+ }
+ ,test: function(obj) {
+ var qualify = false;
+ var _g = 0;
+ var _g1 = Reflect.fields(obj);
+ while(_g < _g1.length) {
+ var k = _g1[_g];
+ ++_g;
+ var v = Std.string(Reflect.field(obj,k));
+ if(this.testProperty(k,v)) {
+ qualify = true;
+ }
+ }
+ var _g = 0;
+ var _g1 = Reflect.fields(obj);
+ while(_g < _g1.length) {
+ var k = _g1[_g];
+ ++_g;
+ var v = Std.string(Reflect.field(obj,k));
+ if(this.testProperty(k,v,true)) {
+ qualify = false;
+ }
+ }
+ return qualify;
+ }
+ ,testProperty: function(property,value,exclude) {
+ var conds = 0;
+ var fails = 0;
+ var qualify = 0;
+ var testprop = function(expr) {
+ conds += 1;
+ fails += expr ? 0 : 1;
+ return expr;
+ };
+ if(this.q[value] != null) {
+ var v = this.q[value];
+ if(v[property] != null) {
+ return v[property];
+ }
+ }
+ if(Reflect.field(this.q,"expr")) {
+ var f = Reflect.field(this.q,"expr");
+ if(!Reflect.field(this.q,"show")) {
+ if(Reflect.field(f,"!=") != null && testprop((value == null ? "null" : "" + value) == Std.string(Reflect.field(f,"!="))) && exclude) {
+ ++qualify;
+ }
+ } else {
+ if(Reflect.field(f,"*") != null && testprop(parseFloat(value) != null)) {
+ ++qualify;
+ }
+ if(Reflect.field(f,">") != null && testprop(parseFloat(value) >= parseFloat(Reflect.field(f,">")))) {
+ ++qualify;
+ }
+ if(Reflect.field(f,"<") != null && testprop(parseFloat(value) <= parseFloat(Reflect.field(f,"<")))) {
+ ++qualify;
+ }
+ if(Reflect.field(f,"=") != null && (testprop(value == Reflect.field(f,"=")) || testprop(parseFloat(value) == parseFloat(Reflect.field(f,"="))))) {
+ ++qualify;
+ }
+ }
+ }
+ return qualify > 0;
+ }
+};
+var xrfragment_Parser = $hx_exports["xrfragment"]["Parser"] = function() { };
+xrfragment_Parser.__name__ = true;
+xrfragment_Parser.parse = function(key,value,store,index) {
+ var Frag_h = Object.create(null);
+ Frag_h["#"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_PREDEFINED_VIEW | xrfragment_XRF.PV_EXECUTE;
+ Frag_h["src"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_URL;
+ Frag_h["href"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_URL | xrfragment_XRF.T_PREDEFINED_VIEW;
+ Frag_h["tag"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["pos"] = xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_VECTOR3 | xrfragment_XRF.T_STRING | xrfragment_XRF.T_STRING_OBJ | xrfragment_XRF.METADATA | xrfragment_XRF.NAVIGATOR;
+ Frag_h["rot"] = xrfragment_XRF.QUERY_OPERATOR | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_VECTOR3 | xrfragment_XRF.METADATA | xrfragment_XRF.NAVIGATOR;
+ Frag_h["t"] = xrfragment_XRF.ASSET | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_FLOAT | xrfragment_XRF.T_VECTOR2 | xrfragment_XRF.T_STRING | xrfragment_XRF.NAVIGATOR | xrfragment_XRF.METADATA;
+ Frag_h["tv"] = xrfragment_XRF.ASSET | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_FLOAT | xrfragment_XRF.T_VECTOR2 | xrfragment_XRF.T_VECTOR3 | xrfragment_XRF.NAVIGATOR | xrfragment_XRF.METADATA;
+ Frag_h["namespace"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["SPDX"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["unit"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["description"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["session"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_URL | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.NAVIGATOR | xrfragment_XRF.METADATA | xrfragment_XRF.PROMPT;
+ var keyStripped = key.replace(xrfragment_XRF.operators.r,"");
+ var isPVDynamic = key.length > 0 && !Object.prototype.hasOwnProperty.call(Frag_h,key);
+ var isPVDefault = value.length == 0 && key.length > 0 && key == "#";
+ if(isPVDynamic) {
+ var v = new xrfragment_XRF(key,xrfragment_XRF.PV_EXECUTE | xrfragment_XRF.NAVIGATOR,index);
+ v.validate(value);
+ store[keyStripped] = v;
+ return true;
+ }
+ var v = new xrfragment_XRF(key,Frag_h[key],index);
+ if(Object.prototype.hasOwnProperty.call(Frag_h,key)) {
+ if(!v.validate(value)) {
+ console.log("src/xrfragment/Parser.hx:66:","⚠ fragment '" + key + "' has incompatible value (" + value + ")");
+ return false;
+ }
+ store[keyStripped] = v;
+ if(xrfragment_Parser.debug) {
+ console.log("src/xrfragment/Parser.hx:70:","✔ " + key + ": " + v.string);
+ }
+ } else {
+ if(typeof(value) == "string") {
+ v.guessType(v,value);
+ }
+ v.noXRF = true;
+ store[keyStripped] = v;
+ }
+ return true;
+};
+var xrfragment_URI = $hx_exports["xrfragment"]["URI"] = function() { };
+xrfragment_URI.__name__ = true;
+xrfragment_URI.parse = function(url,filter) {
+ var store = { };
+ if(url == null || url.indexOf("#") == -1) {
+ return store;
+ }
+ var fragment = url.split("#");
+ var splitArray = fragment[1].split("&");
+ var _g = 0;
+ var _g1 = splitArray.length;
+ while(_g < _g1) {
+ var i = _g++;
+ var splitByEqual = splitArray[i].split("=");
+ var regexPlus = new EReg("\\+","g");
+ var key = splitByEqual[0];
+ var value = "";
+ if(splitByEqual.length > 1) {
+ var s = regexPlus.split(splitByEqual[1]).join(" ");
+ value = decodeURIComponent(s.split("+").join(" "));
+ }
+ var ok = xrfragment_Parser.parse(key,value,store,i);
+ }
+ if(filter != null && filter != 0) {
+ var _g = 0;
+ var _g1 = Reflect.fields(store);
+ while(_g < _g1.length) {
+ var key = _g1[_g];
+ ++_g;
+ var xrf = store[key];
+ if(!xrf.is(filter)) {
+ Reflect.deleteField(store,key);
+ }
+ }
+ }
+ return store;
+};
+var xrfragment_XRF = $hx_exports["xrfragment"]["XRF"] = function(_fragment,_flags,_index) {
+ this.fragment = _fragment;
+ this.flags = _flags;
+ this.index = _index;
+};
+xrfragment_XRF.__name__ = true;
+xrfragment_XRF.set = function(flag,flags) {
+ return flags | flag;
+};
+xrfragment_XRF.unset = function(flag,flags) {
+ return flags & ~flag;
+};
+xrfragment_XRF.prototype = {
+ is: function(flag) {
+ var v = this.flags;
+ if(!(typeof(v) == "number" && ((v | 0) === v))) {
+ this.flags = 0;
+ }
+ return (this.flags & flag) != 0;
+ }
+ ,validate: function(value) {
+ this.guessType(this,value);
+ var ok = true;
+ if(!this.is(xrfragment_XRF.T_FLOAT) && this.is(xrfragment_XRF.T_VECTOR2) && !(typeof(this.x) == "number" && typeof(this.y) == "number")) {
+ ok = false;
+ }
+ if(!(this.is(xrfragment_XRF.T_VECTOR2) || this.is(xrfragment_XRF.T_STRING)) && this.is(xrfragment_XRF.T_VECTOR3) && !(typeof(this.x) == "number" && typeof(this.y) == "number" && typeof(this.z) == "number")) {
+ ok = false;
+ }
+ return ok;
+ }
+ ,guessType: function(v,str) {
+ v.string = str;
+ if(typeof(str) != "string") {
+ return;
+ }
+ if(str.length > 0) {
+ if(str.split(",").length > 1) {
+ var xyzw = str.split(",");
+ if(xyzw.length > 0) {
+ v.x = parseFloat(xyzw[0]);
+ }
+ if(xyzw.length > 1) {
+ v.y = parseFloat(xyzw[1]);
+ }
+ if(xyzw.length > 2) {
+ v.z = parseFloat(xyzw[2]);
+ }
+ if(xyzw.length > 3) {
+ v.w = parseFloat(xyzw[3]);
+ }
+ }
+ if(xrfragment_XRF.isColor.match(str)) {
+ v.color = str;
+ }
+ if(xrfragment_XRF.isFloat.match(str)) {
+ v.x = parseFloat(str);
+ v.float = v.x;
+ }
+ if(xrfragment_XRF.isInt.match(str)) {
+ v.int = Std.parseInt(str);
+ v.x = v.int;
+ }
+ v.filter = new xrfragment_Filter(v.fragment + "=" + v.string);
+ } else {
+ v.filter = new xrfragment_Filter(v.fragment);
+ }
+ }
+};
+if(typeof(performance) != "undefined" ? typeof(performance.now) == "function" : false) {
+ HxOverrides.now = performance.now.bind(performance);
+}
+String.__name__ = true;
+Array.__name__ = true;
+js_Boot.__toStr = ({ }).toString;
+xrfragment_Parser.error = "";
+xrfragment_Parser.debug = false;
+xrfragment_XRF.ASSET = 1;
+xrfragment_XRF.PROP_BIND = 2;
+xrfragment_XRF.QUERY_OPERATOR = 4;
+xrfragment_XRF.PROMPT = 8;
+xrfragment_XRF.ROUNDROBIN = 16;
+xrfragment_XRF.NAVIGATOR = 32;
+xrfragment_XRF.METADATA = 64;
+xrfragment_XRF.PV_OVERRIDE = 128;
+xrfragment_XRF.PV_EXECUTE = 256;
+xrfragment_XRF.T_COLOR = 8192;
+xrfragment_XRF.T_INT = 16384;
+xrfragment_XRF.T_FLOAT = 32768;
+xrfragment_XRF.T_VECTOR2 = 65536;
+xrfragment_XRF.T_VECTOR3 = 131072;
+xrfragment_XRF.T_URL = 262144;
+xrfragment_XRF.T_PREDEFINED_VIEW = 524288;
+xrfragment_XRF.T_STRING = 1048576;
+xrfragment_XRF.T_STRING_OBJ = 2097152;
+xrfragment_XRF.T_STRING_OBJ_PROP = 4194304;
+xrfragment_XRF.isColor = new EReg("^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$","");
+xrfragment_XRF.isInt = new EReg("^[-0-9]+$","");
+xrfragment_XRF.isFloat = new EReg("^[-0-9]+\\.[0-9]+$","");
+xrfragment_XRF.isVector = new EReg("([,]+|\\w)","");
+xrfragment_XRF.isUrl = new EReg("(://)?\\..*","");
+xrfragment_XRF.isUrlOrPretypedView = new EReg("(^#|://)?\\..*","");
+xrfragment_XRF.isString = new EReg(".*","");
+xrfragment_XRF.operators = new EReg("(^-|[\\*]+)","");
+xrfragment_XRF.isProp = new EReg("^.*=[><=]?","");
+xrfragment_XRF.isExclude = new EReg("^-","");
+xrfragment_XRF.isDeep = new EReg("\\*","");
+xrfragment_XRF.isNumber = new EReg("^[0-9\\.]+$","");
+})({});
+var xrfragment = $hx_exports["xrfragment"];
+export default xrfragment;
+var $hx_exports = typeof exports != "undefined" ? exports : typeof window != "undefined" ? window : typeof self != "undefined" ? self : this;
+(function ($global) { "use strict";
+$hx_exports["xrfragment"] = $hx_exports["xrfragment"] || {};
+var EReg = function(r,opt) {
+ this.r = new RegExp(r,opt.split("u").join(""));
+};
+EReg.__name__ = true;
+EReg.prototype = {
+ match: function(s) {
+ if(this.r.global) {
+ this.r.lastIndex = 0;
+ }
+ this.r.m = this.r.exec(s);
+ this.r.s = s;
+ return this.r.m != null;
+ }
+ ,split: function(s) {
+ var d = "#__delim__#";
+ return s.replace(this.r,d).split(d);
+ }
+};
+var HxOverrides = function() { };
+HxOverrides.__name__ = true;
+HxOverrides.cca = function(s,index) {
+ var x = s.charCodeAt(index);
+ if(x != x) {
+ return undefined;
+ }
+ return x;
+};
+HxOverrides.substr = function(s,pos,len) {
+ if(len == null) {
+ len = s.length;
+ } else if(len < 0) {
+ if(pos == 0) {
+ len = s.length + len;
+ } else {
+ return "";
+ }
+ }
+ return s.substr(pos,len);
+};
+HxOverrides.now = function() {
+ return Date.now();
+};
+Math.__name__ = true;
+var Reflect = function() { };
+Reflect.__name__ = true;
+Reflect.field = function(o,field) {
+ try {
+ return o[field];
+ } catch( _g ) {
+ return null;
+ }
+};
+Reflect.fields = function(o) {
+ var a = [];
+ if(o != null) {
+ var hasOwnProperty = Object.prototype.hasOwnProperty;
+ for( var f in o ) {
+ if(f != "__id__" && f != "hx__closures__" && hasOwnProperty.call(o,f)) {
+ a.push(f);
+ }
+ }
+ }
+ return a;
+};
+Reflect.deleteField = function(o,field) {
+ if(!Object.prototype.hasOwnProperty.call(o,field)) {
+ return false;
+ }
+ delete(o[field]);
+ return true;
+};
+Reflect.copy = function(o) {
+ if(o == null) {
+ return null;
+ }
+ var o2 = { };
+ var _g = 0;
+ var _g1 = Reflect.fields(o);
+ while(_g < _g1.length) {
+ var f = _g1[_g];
+ ++_g;
+ o2[f] = Reflect.field(o,f);
+ }
+ return o2;
+};
+var Std = function() { };
+Std.__name__ = true;
+Std.string = function(s) {
+ return js_Boot.__string_rec(s,"");
+};
+Std.parseInt = function(x) {
+ if(x != null) {
+ var _g = 0;
+ var _g1 = x.length;
+ while(_g < _g1) {
+ var i = _g++;
+ var c = x.charCodeAt(i);
+ if(c <= 8 || c >= 14 && c != 32 && c != 45) {
+ var nc = x.charCodeAt(i + 1);
+ var v = parseInt(x,nc == 120 || nc == 88 ? 16 : 10);
+ if(isNaN(v)) {
+ return null;
+ } else {
+ return v;
+ }
+ }
+ }
+ }
+ return null;
+};
+var StringTools = function() { };
+StringTools.__name__ = true;
+StringTools.isSpace = function(s,pos) {
+ var c = HxOverrides.cca(s,pos);
+ if(!(c > 8 && c < 14)) {
+ return c == 32;
+ } else {
+ return true;
+ }
+};
+StringTools.ltrim = function(s) {
+ var l = s.length;
+ var r = 0;
+ while(r < l && StringTools.isSpace(s,r)) ++r;
+ if(r > 0) {
+ return HxOverrides.substr(s,r,l - r);
+ } else {
+ return s;
+ }
+};
+StringTools.rtrim = function(s) {
+ var l = s.length;
+ var r = 0;
+ while(r < l && StringTools.isSpace(s,l - r - 1)) ++r;
+ if(r > 0) {
+ return HxOverrides.substr(s,0,l - r);
+ } else {
+ return s;
+ }
+};
+StringTools.trim = function(s) {
+ return StringTools.ltrim(StringTools.rtrim(s));
+};
+var haxe_iterators_ArrayIterator = function(array) {
+ this.current = 0;
+ this.array = array;
+};
+haxe_iterators_ArrayIterator.__name__ = true;
+haxe_iterators_ArrayIterator.prototype = {
+ hasNext: function() {
+ return this.current < this.array.length;
+ }
+ ,next: function() {
+ return this.array[this.current++];
+ }
+};
+var js_Boot = function() { };
+js_Boot.__name__ = true;
+js_Boot.__string_rec = function(o,s) {
+ if(o == null) {
+ return "null";
+ }
+ if(s.length >= 5) {
+ return "<...>";
+ }
+ var t = typeof(o);
+ if(t == "function" && (o.__name__ || o.__ename__)) {
+ t = "object";
+ }
+ switch(t) {
+ case "function":
+ return "";
+ case "object":
+ if(((o) instanceof Array)) {
+ var str = "[";
+ s += "\t";
+ var _g = 0;
+ var _g1 = o.length;
+ while(_g < _g1) {
+ var i = _g++;
+ str += (i > 0 ? "," : "") + js_Boot.__string_rec(o[i],s);
+ }
+ str += "]";
+ return str;
+ }
+ var tostr;
+ try {
+ tostr = o.toString;
+ } catch( _g ) {
+ return "???";
+ }
+ if(tostr != null && tostr != Object.toString && typeof(tostr) == "function") {
+ var s2 = o.toString();
+ if(s2 != "[object Object]") {
+ return s2;
+ }
+ }
+ var str = "{\n";
+ s += "\t";
+ var hasp = o.hasOwnProperty != null;
+ var k = null;
+ for( k in o ) {
+ if(hasp && !o.hasOwnProperty(k)) {
+ continue;
+ }
+ if(k == "prototype" || k == "__class__" || k == "__super__" || k == "__interfaces__" || k == "__properties__") {
+ continue;
+ }
+ if(str.length != 2) {
+ str += ", \n";
+ }
+ str += s + k + " : " + js_Boot.__string_rec(o[k],s);
+ }
+ s = s.substring(1);
+ str += "\n" + s + "}";
+ return str;
+ case "string":
+ return o;
+ default:
+ return String(o);
+ }
+};
+var xrfragment_Filter = $hx_exports["xrfragment"]["Filter"] = function(str) {
+ this.q = { };
+ this.str = "";
+ if(str != null) {
+ this.parse(str);
+ }
+};
+xrfragment_Filter.__name__ = true;
+xrfragment_Filter.prototype = {
+ toObject: function() {
+ return Reflect.copy(this.q);
+ }
+ ,get: function() {
+ return Reflect.copy(this.q);
+ }
+ ,parse: function(str) {
+ var token = str.split(" ");
+ var q = { };
+ var process = function(str,prefix) {
+ if(prefix == null) {
+ prefix = "";
+ }
+ str = StringTools.trim(str);
+ var k = str.split("=")[0];
+ var v = str.split("=")[1];
+ var filter = { };
+ if(q[prefix + k]) {
+ filter = q[prefix + k];
+ }
+ if(xrfragment_XRF.isProp.match(str)) {
+ var oper = "";
+ if(str.indexOf(">") != -1) {
+ oper = ">";
+ }
+ if(str.indexOf("<") != -1) {
+ oper = "<";
+ }
+ if(xrfragment_XRF.isExclude.match(k)) {
+ k = HxOverrides.substr(k,1,null);
+ }
+ v = HxOverrides.substr(v,oper.length,null);
+ if(oper.length == 0) {
+ oper = "=";
+ }
+ var rule = { };
+ if(xrfragment_XRF.isNumber.match(v)) {
+ rule[oper] = parseFloat(v);
+ } else {
+ rule[oper] = v;
+ }
+ q["expr"] = rule;
+ }
+ var value = xrfragment_XRF.isDeep.match(str) ? k.split("*").length - 1 : 0;
+ q["deep"] = value;
+ var value = xrfragment_XRF.isExclude.match(str) ? false : true;
+ q["show"] = value;
+ var value = k.replace(xrfragment_XRF.operators.r,"");
+ q["key"] = value;
+ q["value"] = v;
+ };
+ var _g = 0;
+ var _g1 = token.length;
+ while(_g < _g1) {
+ var i = _g++;
+ process(token[i]);
+ }
+ return this.q = q;
+ }
+ ,test: function(obj) {
+ var qualify = false;
+ var _g = 0;
+ var _g1 = Reflect.fields(obj);
+ while(_g < _g1.length) {
+ var k = _g1[_g];
+ ++_g;
+ var v = Std.string(Reflect.field(obj,k));
+ if(this.testProperty(k,v)) {
+ qualify = true;
+ }
+ }
+ var _g = 0;
+ var _g1 = Reflect.fields(obj);
+ while(_g < _g1.length) {
+ var k = _g1[_g];
+ ++_g;
+ var v = Std.string(Reflect.field(obj,k));
+ if(this.testProperty(k,v,true)) {
+ qualify = false;
+ }
+ }
+ return qualify;
+ }
+ ,testProperty: function(property,value,exclude) {
+ var conds = 0;
+ var fails = 0;
+ var qualify = 0;
+ var testprop = function(expr) {
+ conds += 1;
+ fails += expr ? 0 : 1;
+ return expr;
+ };
+ if(this.q[value] != null) {
+ var v = this.q[value];
+ if(v[property] != null) {
+ return v[property];
+ }
+ }
+ if(Reflect.field(this.q,"expr")) {
+ var f = Reflect.field(this.q,"expr");
+ if(!Reflect.field(this.q,"show")) {
+ if(Reflect.field(f,"!=") != null && testprop((value == null ? "null" : "" + value) == Std.string(Reflect.field(f,"!="))) && exclude) {
+ ++qualify;
+ }
+ } else {
+ if(Reflect.field(f,"*") != null && testprop(parseFloat(value) != null)) {
+ ++qualify;
+ }
+ if(Reflect.field(f,">") != null && testprop(parseFloat(value) >= parseFloat(Reflect.field(f,">")))) {
+ ++qualify;
+ }
+ if(Reflect.field(f,"<") != null && testprop(parseFloat(value) <= parseFloat(Reflect.field(f,"<")))) {
+ ++qualify;
+ }
+ if(Reflect.field(f,"=") != null && (testprop(value == Reflect.field(f,"=")) || testprop(parseFloat(value) == parseFloat(Reflect.field(f,"="))))) {
+ ++qualify;
+ }
+ }
+ }
+ return qualify > 0;
+ }
+};
+var xrfragment_Parser = $hx_exports["xrfragment"]["Parser"] = function() { };
+xrfragment_Parser.__name__ = true;
+xrfragment_Parser.parse = function(key,value,store,index) {
+ var Frag_h = Object.create(null);
+ Frag_h["#"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_PREDEFINED_VIEW | xrfragment_XRF.PV_EXECUTE;
+ Frag_h["src"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_URL;
+ Frag_h["href"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_URL | xrfragment_XRF.T_PREDEFINED_VIEW;
+ Frag_h["tag"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["pos"] = xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_VECTOR3 | xrfragment_XRF.T_STRING | xrfragment_XRF.T_STRING_OBJ | xrfragment_XRF.METADATA | xrfragment_XRF.NAVIGATOR;
+ Frag_h["rot"] = xrfragment_XRF.QUERY_OPERATOR | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_VECTOR3 | xrfragment_XRF.METADATA | xrfragment_XRF.NAVIGATOR;
+ Frag_h["t"] = xrfragment_XRF.ASSET | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_FLOAT | xrfragment_XRF.T_VECTOR2 | xrfragment_XRF.T_STRING | xrfragment_XRF.NAVIGATOR | xrfragment_XRF.METADATA;
+ Frag_h["tv"] = xrfragment_XRF.ASSET | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_FLOAT | xrfragment_XRF.T_VECTOR2 | xrfragment_XRF.T_VECTOR3 | xrfragment_XRF.NAVIGATOR | xrfragment_XRF.METADATA;
+ Frag_h["namespace"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["SPDX"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["unit"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["description"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["session"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_URL | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.NAVIGATOR | xrfragment_XRF.METADATA | xrfragment_XRF.PROMPT;
+ var keyStripped = key.replace(xrfragment_XRF.operators.r,"");
+ var isPVDynamic = key.length > 0 && !Object.prototype.hasOwnProperty.call(Frag_h,key);
+ var isPVDefault = value.length == 0 && key.length > 0 && key == "#";
+ if(isPVDynamic) {
+ var v = new xrfragment_XRF(key,xrfragment_XRF.PV_EXECUTE | xrfragment_XRF.NAVIGATOR,index);
+ v.validate(value);
+ store[keyStripped] = v;
+ return true;
+ }
+ var v = new xrfragment_XRF(key,Frag_h[key],index);
+ if(Object.prototype.hasOwnProperty.call(Frag_h,key)) {
+ if(!v.validate(value)) {
+ console.log("src/xrfragment/Parser.hx:66:","⚠ fragment '" + key + "' has incompatible value (" + value + ")");
+ return false;
+ }
+ store[keyStripped] = v;
+ if(xrfragment_Parser.debug) {
+ console.log("src/xrfragment/Parser.hx:70:","✔ " + key + ": " + v.string);
+ }
+ } else {
+ if(typeof(value) == "string") {
+ v.guessType(v,value);
+ }
+ v.noXRF = true;
+ store[keyStripped] = v;
+ }
+ return true;
+};
+var xrfragment_URI = $hx_exports["xrfragment"]["URI"] = function() { };
+xrfragment_URI.__name__ = true;
+xrfragment_URI.parse = function(url,filter) {
+ var store = { };
+ if(url == null || url.indexOf("#") == -1) {
+ return store;
+ }
+ var fragment = url.split("#");
+ var splitArray = fragment[1].split("&");
+ var _g = 0;
+ var _g1 = splitArray.length;
+ while(_g < _g1) {
+ var i = _g++;
+ var splitByEqual = splitArray[i].split("=");
+ var regexPlus = new EReg("\\+","g");
+ var key = splitByEqual[0];
+ var value = "";
+ if(splitByEqual.length > 1) {
+ var s = regexPlus.split(splitByEqual[1]).join(" ");
+ value = decodeURIComponent(s.split("+").join(" "));
+ }
+ var ok = xrfragment_Parser.parse(key,value,store,i);
+ }
+ if(filter != null && filter != 0) {
+ var _g = 0;
+ var _g1 = Reflect.fields(store);
+ while(_g < _g1.length) {
+ var key = _g1[_g];
+ ++_g;
+ var xrf = store[key];
+ if(!xrf.is(filter)) {
+ Reflect.deleteField(store,key);
+ }
+ }
+ }
+ return store;
+};
+var xrfragment_XRF = $hx_exports["xrfragment"]["XRF"] = function(_fragment,_flags,_index) {
+ this.fragment = _fragment;
+ this.flags = _flags;
+ this.index = _index;
+};
+xrfragment_XRF.__name__ = true;
+xrfragment_XRF.set = function(flag,flags) {
+ return flags | flag;
+};
+xrfragment_XRF.unset = function(flag,flags) {
+ return flags & ~flag;
+};
+xrfragment_XRF.prototype = {
+ is: function(flag) {
+ var v = this.flags;
+ if(!(typeof(v) == "number" && ((v | 0) === v))) {
+ this.flags = 0;
+ }
+ return (this.flags & flag) != 0;
+ }
+ ,validate: function(value) {
+ this.guessType(this,value);
+ var ok = true;
+ if(!this.is(xrfragment_XRF.T_FLOAT) && this.is(xrfragment_XRF.T_VECTOR2) && !(typeof(this.x) == "number" && typeof(this.y) == "number")) {
+ ok = false;
+ }
+ if(!(this.is(xrfragment_XRF.T_VECTOR2) || this.is(xrfragment_XRF.T_STRING)) && this.is(xrfragment_XRF.T_VECTOR3) && !(typeof(this.x) == "number" && typeof(this.y) == "number" && typeof(this.z) == "number")) {
+ ok = false;
+ }
+ return ok;
+ }
+ ,guessType: function(v,str) {
+ v.string = str;
+ if(typeof(str) != "string") {
+ return;
+ }
+ if(str.length > 0) {
+ if(str.split(",").length > 1) {
+ var xyzw = str.split(",");
+ if(xyzw.length > 0) {
+ v.x = parseFloat(xyzw[0]);
+ }
+ if(xyzw.length > 1) {
+ v.y = parseFloat(xyzw[1]);
+ }
+ if(xyzw.length > 2) {
+ v.z = parseFloat(xyzw[2]);
+ }
+ if(xyzw.length > 3) {
+ v.w = parseFloat(xyzw[3]);
+ }
+ }
+ if(xrfragment_XRF.isColor.match(str)) {
+ v.color = str;
+ }
+ if(xrfragment_XRF.isFloat.match(str)) {
+ v.x = parseFloat(str);
+ v.float = v.x;
+ }
+ if(xrfragment_XRF.isInt.match(str)) {
+ v.int = Std.parseInt(str);
+ v.x = v.int;
+ }
+ v.filter = new xrfragment_Filter(v.fragment + "=" + v.string);
+ } else {
+ v.filter = new xrfragment_Filter(v.fragment);
+ }
+ }
+};
+if(typeof(performance) != "undefined" ? typeof(performance.now) == "function" : false) {
+ HxOverrides.now = performance.now.bind(performance);
+}
+String.__name__ = true;
+Array.__name__ = true;
+js_Boot.__toStr = ({ }).toString;
+xrfragment_Parser.error = "";
+xrfragment_Parser.debug = false;
+xrfragment_XRF.ASSET = 1;
+xrfragment_XRF.PROP_BIND = 2;
+xrfragment_XRF.QUERY_OPERATOR = 4;
+xrfragment_XRF.PROMPT = 8;
+xrfragment_XRF.ROUNDROBIN = 16;
+xrfragment_XRF.NAVIGATOR = 32;
+xrfragment_XRF.METADATA = 64;
+xrfragment_XRF.PV_OVERRIDE = 128;
+xrfragment_XRF.PV_EXECUTE = 256;
+xrfragment_XRF.T_COLOR = 8192;
+xrfragment_XRF.T_INT = 16384;
+xrfragment_XRF.T_FLOAT = 32768;
+xrfragment_XRF.T_VECTOR2 = 65536;
+xrfragment_XRF.T_VECTOR3 = 131072;
+xrfragment_XRF.T_URL = 262144;
+xrfragment_XRF.T_PREDEFINED_VIEW = 524288;
+xrfragment_XRF.T_STRING = 1048576;
+xrfragment_XRF.T_STRING_OBJ = 2097152;
+xrfragment_XRF.T_STRING_OBJ_PROP = 4194304;
+xrfragment_XRF.isColor = new EReg("^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$","");
+xrfragment_XRF.isInt = new EReg("^[-0-9]+$","");
+xrfragment_XRF.isFloat = new EReg("^[-0-9]+\\.[0-9]+$","");
+xrfragment_XRF.isVector = new EReg("([,]+|\\w)","");
+xrfragment_XRF.isUrl = new EReg("(://)?\\..*","");
+xrfragment_XRF.isUrlOrPretypedView = new EReg("(^#|://)?\\..*","");
+xrfragment_XRF.isString = new EReg(".*","");
+xrfragment_XRF.operators = new EReg("(^-|[\\*]+)","");
+xrfragment_XRF.isProp = new EReg("^.*=[><=]?","");
+xrfragment_XRF.isExclude = new EReg("^-","");
+xrfragment_XRF.isDeep = new EReg("\\*","");
+xrfragment_XRF.isNumber = new EReg("^[0-9\\.]+$","");
+})({});
+var xrfragment = $hx_exports["xrfragment"];
+export default xrfragment;
+var $hx_exports = typeof exports != "undefined" ? exports : typeof window != "undefined" ? window : typeof self != "undefined" ? self : this;
+(function ($global) { "use strict";
+$hx_exports["xrfragment"] = $hx_exports["xrfragment"] || {};
+var EReg = function(r,opt) {
+ this.r = new RegExp(r,opt.split("u").join(""));
+};
+EReg.__name__ = true;
+EReg.prototype = {
+ match: function(s) {
+ if(this.r.global) {
+ this.r.lastIndex = 0;
+ }
+ this.r.m = this.r.exec(s);
+ this.r.s = s;
+ return this.r.m != null;
+ }
+ ,split: function(s) {
+ var d = "#__delim__#";
+ return s.replace(this.r,d).split(d);
+ }
+};
+var HxOverrides = function() { };
+HxOverrides.__name__ = true;
+HxOverrides.cca = function(s,index) {
+ var x = s.charCodeAt(index);
+ if(x != x) {
+ return undefined;
+ }
+ return x;
+};
+HxOverrides.substr = function(s,pos,len) {
+ if(len == null) {
+ len = s.length;
+ } else if(len < 0) {
+ if(pos == 0) {
+ len = s.length + len;
+ } else {
+ return "";
+ }
+ }
+ return s.substr(pos,len);
+};
+HxOverrides.now = function() {
+ return Date.now();
+};
+Math.__name__ = true;
+var Reflect = function() { };
+Reflect.__name__ = true;
+Reflect.field = function(o,field) {
+ try {
+ return o[field];
+ } catch( _g ) {
+ return null;
+ }
+};
+Reflect.fields = function(o) {
+ var a = [];
+ if(o != null) {
+ var hasOwnProperty = Object.prototype.hasOwnProperty;
+ for( var f in o ) {
+ if(f != "__id__" && f != "hx__closures__" && hasOwnProperty.call(o,f)) {
+ a.push(f);
+ }
+ }
+ }
+ return a;
+};
+Reflect.deleteField = function(o,field) {
+ if(!Object.prototype.hasOwnProperty.call(o,field)) {
+ return false;
+ }
+ delete(o[field]);
+ return true;
+};
+Reflect.copy = function(o) {
+ if(o == null) {
+ return null;
+ }
+ var o2 = { };
+ var _g = 0;
+ var _g1 = Reflect.fields(o);
+ while(_g < _g1.length) {
+ var f = _g1[_g];
+ ++_g;
+ o2[f] = Reflect.field(o,f);
+ }
+ return o2;
+};
+var Std = function() { };
+Std.__name__ = true;
+Std.string = function(s) {
+ return js_Boot.__string_rec(s,"");
+};
+Std.parseInt = function(x) {
+ if(x != null) {
+ var _g = 0;
+ var _g1 = x.length;
+ while(_g < _g1) {
+ var i = _g++;
+ var c = x.charCodeAt(i);
+ if(c <= 8 || c >= 14 && c != 32 && c != 45) {
+ var nc = x.charCodeAt(i + 1);
+ var v = parseInt(x,nc == 120 || nc == 88 ? 16 : 10);
+ if(isNaN(v)) {
+ return null;
+ } else {
+ return v;
+ }
+ }
+ }
+ }
+ return null;
+};
+var StringTools = function() { };
+StringTools.__name__ = true;
+StringTools.isSpace = function(s,pos) {
+ var c = HxOverrides.cca(s,pos);
+ if(!(c > 8 && c < 14)) {
+ return c == 32;
+ } else {
+ return true;
+ }
+};
+StringTools.ltrim = function(s) {
+ var l = s.length;
+ var r = 0;
+ while(r < l && StringTools.isSpace(s,r)) ++r;
+ if(r > 0) {
+ return HxOverrides.substr(s,r,l - r);
+ } else {
+ return s;
+ }
+};
+StringTools.rtrim = function(s) {
+ var l = s.length;
+ var r = 0;
+ while(r < l && StringTools.isSpace(s,l - r - 1)) ++r;
+ if(r > 0) {
+ return HxOverrides.substr(s,0,l - r);
+ } else {
+ return s;
+ }
+};
+StringTools.trim = function(s) {
+ return StringTools.ltrim(StringTools.rtrim(s));
+};
+var haxe_iterators_ArrayIterator = function(array) {
+ this.current = 0;
+ this.array = array;
+};
+haxe_iterators_ArrayIterator.__name__ = true;
+haxe_iterators_ArrayIterator.prototype = {
+ hasNext: function() {
+ return this.current < this.array.length;
+ }
+ ,next: function() {
+ return this.array[this.current++];
+ }
+};
+var js_Boot = function() { };
+js_Boot.__name__ = true;
+js_Boot.__string_rec = function(o,s) {
+ if(o == null) {
+ return "null";
+ }
+ if(s.length >= 5) {
+ return "<...>";
+ }
+ var t = typeof(o);
+ if(t == "function" && (o.__name__ || o.__ename__)) {
+ t = "object";
+ }
+ switch(t) {
+ case "function":
+ return "";
+ case "object":
+ if(((o) instanceof Array)) {
+ var str = "[";
+ s += "\t";
+ var _g = 0;
+ var _g1 = o.length;
+ while(_g < _g1) {
+ var i = _g++;
+ str += (i > 0 ? "," : "") + js_Boot.__string_rec(o[i],s);
+ }
+ str += "]";
+ return str;
+ }
+ var tostr;
+ try {
+ tostr = o.toString;
+ } catch( _g ) {
+ return "???";
+ }
+ if(tostr != null && tostr != Object.toString && typeof(tostr) == "function") {
+ var s2 = o.toString();
+ if(s2 != "[object Object]") {
+ return s2;
+ }
+ }
+ var str = "{\n";
+ s += "\t";
+ var hasp = o.hasOwnProperty != null;
+ var k = null;
+ for( k in o ) {
+ if(hasp && !o.hasOwnProperty(k)) {
+ continue;
+ }
+ if(k == "prototype" || k == "__class__" || k == "__super__" || k == "__interfaces__" || k == "__properties__") {
+ continue;
+ }
+ if(str.length != 2) {
+ str += ", \n";
+ }
+ str += s + k + " : " + js_Boot.__string_rec(o[k],s);
+ }
+ s = s.substring(1);
+ str += "\n" + s + "}";
+ return str;
+ case "string":
+ return o;
+ default:
+ return String(o);
+ }
+};
+var xrfragment_Filter = $hx_exports["xrfragment"]["Filter"] = function(str) {
+ this.q = { };
+ this.str = "";
+ if(str != null) {
+ this.parse(str);
+ }
+};
+xrfragment_Filter.__name__ = true;
+xrfragment_Filter.prototype = {
+ toObject: function() {
+ return Reflect.copy(this.q);
+ }
+ ,get: function() {
+ return Reflect.copy(this.q);
+ }
+ ,parse: function(str) {
+ var token = str.split(" ");
+ var q = { };
+ var process = function(str,prefix) {
+ if(prefix == null) {
+ prefix = "";
+ }
+ str = StringTools.trim(str);
+ var k = str.split("=")[0];
+ var v = str.split("=")[1];
+ var filter = { };
+ if(q[prefix + k]) {
+ filter = q[prefix + k];
+ }
+ if(xrfragment_XRF.isProp.match(str)) {
+ var oper = "";
+ if(str.indexOf(">") != -1) {
+ oper = ">";
+ }
+ if(str.indexOf("<") != -1) {
+ oper = "<";
+ }
+ if(xrfragment_XRF.isExclude.match(k)) {
+ k = HxOverrides.substr(k,1,null);
+ }
+ v = HxOverrides.substr(v,oper.length,null);
+ if(oper.length == 0) {
+ oper = "=";
+ }
+ var rule = { };
+ if(xrfragment_XRF.isNumber.match(v)) {
+ rule[oper] = parseFloat(v);
+ } else {
+ rule[oper] = v;
+ }
+ q["expr"] = rule;
+ }
+ var value = xrfragment_XRF.isDeep.match(str) ? k.split("*").length - 1 : 0;
+ q["deep"] = value;
+ var value = xrfragment_XRF.isExclude.match(str) ? false : true;
+ q["show"] = value;
+ var value = k.replace(xrfragment_XRF.operators.r,"");
+ q["key"] = value;
+ q["value"] = v;
+ };
+ var _g = 0;
+ var _g1 = token.length;
+ while(_g < _g1) {
+ var i = _g++;
+ process(token[i]);
+ }
+ return this.q = q;
+ }
+ ,test: function(obj) {
+ var qualify = false;
+ var _g = 0;
+ var _g1 = Reflect.fields(obj);
+ while(_g < _g1.length) {
+ var k = _g1[_g];
+ ++_g;
+ var v = Std.string(Reflect.field(obj,k));
+ if(this.testProperty(k,v)) {
+ qualify = true;
+ }
+ }
+ var _g = 0;
+ var _g1 = Reflect.fields(obj);
+ while(_g < _g1.length) {
+ var k = _g1[_g];
+ ++_g;
+ var v = Std.string(Reflect.field(obj,k));
+ if(this.testProperty(k,v,true)) {
+ qualify = false;
+ }
+ }
+ return qualify;
+ }
+ ,testProperty: function(property,value,exclude) {
+ var conds = 0;
+ var fails = 0;
+ var qualify = 0;
+ var testprop = function(expr) {
+ conds += 1;
+ fails += expr ? 0 : 1;
+ return expr;
+ };
+ if(this.q[value] != null) {
+ var v = this.q[value];
+ if(v[property] != null) {
+ return v[property];
+ }
+ }
+ if(Reflect.field(this.q,"expr")) {
+ var f = Reflect.field(this.q,"expr");
+ if(!Reflect.field(this.q,"show")) {
+ if(Reflect.field(f,"!=") != null && testprop((value == null ? "null" : "" + value) == Std.string(Reflect.field(f,"!="))) && exclude) {
+ ++qualify;
+ }
+ } else {
+ if(Reflect.field(f,"*") != null && testprop(parseFloat(value) != null)) {
+ ++qualify;
+ }
+ if(Reflect.field(f,">") != null && testprop(parseFloat(value) >= parseFloat(Reflect.field(f,">")))) {
+ ++qualify;
+ }
+ if(Reflect.field(f,"<") != null && testprop(parseFloat(value) <= parseFloat(Reflect.field(f,"<")))) {
+ ++qualify;
+ }
+ if(Reflect.field(f,"=") != null && (testprop(value == Reflect.field(f,"=")) || testprop(parseFloat(value) == parseFloat(Reflect.field(f,"="))))) {
+ ++qualify;
+ }
+ }
+ }
+ return qualify > 0;
+ }
+};
+var xrfragment_Parser = $hx_exports["xrfragment"]["Parser"] = function() { };
+xrfragment_Parser.__name__ = true;
+xrfragment_Parser.parse = function(key,value,store,index) {
+ var Frag_h = Object.create(null);
+ Frag_h["#"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_PREDEFINED_VIEW | xrfragment_XRF.PV_EXECUTE;
+ Frag_h["src"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_URL;
+ Frag_h["href"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_URL | xrfragment_XRF.T_PREDEFINED_VIEW;
+ Frag_h["tag"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["pos"] = xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_VECTOR3 | xrfragment_XRF.T_STRING | xrfragment_XRF.T_STRING_OBJ | xrfragment_XRF.METADATA | xrfragment_XRF.NAVIGATOR;
+ Frag_h["rot"] = xrfragment_XRF.QUERY_OPERATOR | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_VECTOR3 | xrfragment_XRF.METADATA | xrfragment_XRF.NAVIGATOR;
+ Frag_h["t"] = xrfragment_XRF.ASSET | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_FLOAT | xrfragment_XRF.T_VECTOR2 | xrfragment_XRF.T_STRING | xrfragment_XRF.NAVIGATOR | xrfragment_XRF.METADATA;
+ Frag_h["tv"] = xrfragment_XRF.ASSET | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_FLOAT | xrfragment_XRF.T_VECTOR2 | xrfragment_XRF.T_VECTOR3 | xrfragment_XRF.NAVIGATOR | xrfragment_XRF.METADATA;
+ Frag_h["namespace"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["SPDX"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["unit"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["description"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["session"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_URL | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.NAVIGATOR | xrfragment_XRF.METADATA | xrfragment_XRF.PROMPT;
+ var keyStripped = key.replace(xrfragment_XRF.operators.r,"");
+ var isPVDynamic = key.length > 0 && !Object.prototype.hasOwnProperty.call(Frag_h,key);
+ var isPVDefault = value.length == 0 && key.length > 0 && key == "#";
+ if(isPVDynamic) {
+ var v = new xrfragment_XRF(key,xrfragment_XRF.PV_EXECUTE | xrfragment_XRF.NAVIGATOR,index);
+ v.validate(value);
+ store[keyStripped] = v;
+ return true;
+ }
+ var v = new xrfragment_XRF(key,Frag_h[key],index);
+ if(Object.prototype.hasOwnProperty.call(Frag_h,key)) {
+ if(!v.validate(value)) {
+ console.log("src/xrfragment/Parser.hx:66:","⚠ fragment '" + key + "' has incompatible value (" + value + ")");
+ return false;
+ }
+ store[keyStripped] = v;
+ if(xrfragment_Parser.debug) {
+ console.log("src/xrfragment/Parser.hx:70:","✔ " + key + ": " + v.string);
+ }
+ } else {
+ if(typeof(value) == "string") {
+ v.guessType(v,value);
+ }
+ v.noXRF = true;
+ store[keyStripped] = v;
+ }
+ return true;
+};
+var xrfragment_URI = $hx_exports["xrfragment"]["URI"] = function() { };
+xrfragment_URI.__name__ = true;
+xrfragment_URI.parse = function(url,filter) {
+ var store = { };
+ if(url == null || url.indexOf("#") == -1) {
+ return store;
+ }
+ var fragment = url.split("#");
+ var splitArray = fragment[1].split("&");
+ var _g = 0;
+ var _g1 = splitArray.length;
+ while(_g < _g1) {
+ var i = _g++;
+ var splitByEqual = splitArray[i].split("=");
+ var regexPlus = new EReg("\\+","g");
+ var key = splitByEqual[0];
+ var value = "";
+ if(splitByEqual.length > 1) {
+ var s = regexPlus.split(splitByEqual[1]).join(" ");
+ value = decodeURIComponent(s.split("+").join(" "));
+ }
+ var ok = xrfragment_Parser.parse(key,value,store,i);
+ }
+ if(filter != null && filter != 0) {
+ var _g = 0;
+ var _g1 = Reflect.fields(store);
+ while(_g < _g1.length) {
+ var key = _g1[_g];
+ ++_g;
+ var xrf = store[key];
+ if(!xrf.is(filter)) {
+ Reflect.deleteField(store,key);
+ }
+ }
+ }
+ return store;
+};
+var xrfragment_XRF = $hx_exports["xrfragment"]["XRF"] = function(_fragment,_flags,_index) {
+ this.fragment = _fragment;
+ this.flags = _flags;
+ this.index = _index;
+};
+xrfragment_XRF.__name__ = true;
+xrfragment_XRF.set = function(flag,flags) {
+ return flags | flag;
+};
+xrfragment_XRF.unset = function(flag,flags) {
+ return flags & ~flag;
+};
+xrfragment_XRF.prototype = {
+ is: function(flag) {
+ var v = this.flags;
+ if(!(typeof(v) == "number" && ((v | 0) === v))) {
+ this.flags = 0;
+ }
+ return (this.flags & flag) != 0;
+ }
+ ,validate: function(value) {
+ this.guessType(this,value);
+ var ok = true;
+ if(!this.is(xrfragment_XRF.T_FLOAT) && this.is(xrfragment_XRF.T_VECTOR2) && !(typeof(this.x) == "number" && typeof(this.y) == "number")) {
+ ok = false;
+ }
+ if(!(this.is(xrfragment_XRF.T_VECTOR2) || this.is(xrfragment_XRF.T_STRING)) && this.is(xrfragment_XRF.T_VECTOR3) && !(typeof(this.x) == "number" && typeof(this.y) == "number" && typeof(this.z) == "number")) {
+ ok = false;
+ }
+ return ok;
+ }
+ ,guessType: function(v,str) {
+ v.string = str;
+ if(typeof(str) != "string") {
+ return;
+ }
+ if(str.length > 0) {
+ if(str.split(",").length > 1) {
+ var xyzw = str.split(",");
+ if(xyzw.length > 0) {
+ v.x = parseFloat(xyzw[0]);
+ }
+ if(xyzw.length > 1) {
+ v.y = parseFloat(xyzw[1]);
+ }
+ if(xyzw.length > 2) {
+ v.z = parseFloat(xyzw[2]);
+ }
+ if(xyzw.length > 3) {
+ v.w = parseFloat(xyzw[3]);
+ }
+ }
+ if(xrfragment_XRF.isColor.match(str)) {
+ v.color = str;
+ }
+ if(xrfragment_XRF.isFloat.match(str)) {
+ v.x = parseFloat(str);
+ v.float = v.x;
+ }
+ if(xrfragment_XRF.isInt.match(str)) {
+ v.int = Std.parseInt(str);
+ v.x = v.int;
+ }
+ v.filter = new xrfragment_Filter(v.fragment + "=" + v.string);
+ } else {
+ v.filter = new xrfragment_Filter(v.fragment);
+ }
+ }
+};
+if(typeof(performance) != "undefined" ? typeof(performance.now) == "function" : false) {
+ HxOverrides.now = performance.now.bind(performance);
+}
+String.__name__ = true;
+Array.__name__ = true;
+js_Boot.__toStr = ({ }).toString;
+xrfragment_Parser.error = "";
+xrfragment_Parser.debug = false;
+xrfragment_XRF.ASSET = 1;
+xrfragment_XRF.PROP_BIND = 2;
+xrfragment_XRF.QUERY_OPERATOR = 4;
+xrfragment_XRF.PROMPT = 8;
+xrfragment_XRF.ROUNDROBIN = 16;
+xrfragment_XRF.NAVIGATOR = 32;
+xrfragment_XRF.METADATA = 64;
+xrfragment_XRF.PV_OVERRIDE = 128;
+xrfragment_XRF.PV_EXECUTE = 256;
+xrfragment_XRF.T_COLOR = 8192;
+xrfragment_XRF.T_INT = 16384;
+xrfragment_XRF.T_FLOAT = 32768;
+xrfragment_XRF.T_VECTOR2 = 65536;
+xrfragment_XRF.T_VECTOR3 = 131072;
+xrfragment_XRF.T_URL = 262144;
+xrfragment_XRF.T_PREDEFINED_VIEW = 524288;
+xrfragment_XRF.T_STRING = 1048576;
+xrfragment_XRF.T_STRING_OBJ = 2097152;
+xrfragment_XRF.T_STRING_OBJ_PROP = 4194304;
+xrfragment_XRF.isColor = new EReg("^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$","");
+xrfragment_XRF.isInt = new EReg("^[-0-9]+$","");
+xrfragment_XRF.isFloat = new EReg("^[-0-9]+\\.[0-9]+$","");
+xrfragment_XRF.isVector = new EReg("([,]+|\\w)","");
+xrfragment_XRF.isUrl = new EReg("(://)?\\..*","");
+xrfragment_XRF.isUrlOrPretypedView = new EReg("(^#|://)?\\..*","");
+xrfragment_XRF.isString = new EReg(".*","");
+xrfragment_XRF.operators = new EReg("(^-|[\\*]+)","");
+xrfragment_XRF.isProp = new EReg("^.*=[><=]?","");
+xrfragment_XRF.isExclude = new EReg("^-","");
+xrfragment_XRF.isDeep = new EReg("\\*","");
+xrfragment_XRF.isNumber = new EReg("^[0-9\\.]+$","");
+})({});
+var xrfragment = $hx_exports["xrfragment"];
+export default xrfragment;
+var $hx_exports = typeof exports != "undefined" ? exports : typeof window != "undefined" ? window : typeof self != "undefined" ? self : this;
+(function ($global) { "use strict";
+$hx_exports["xrfragment"] = $hx_exports["xrfragment"] || {};
+var EReg = function(r,opt) {
+ this.r = new RegExp(r,opt.split("u").join(""));
+};
+EReg.__name__ = true;
+EReg.prototype = {
+ match: function(s) {
+ if(this.r.global) {
+ this.r.lastIndex = 0;
+ }
+ this.r.m = this.r.exec(s);
+ this.r.s = s;
+ return this.r.m != null;
+ }
+ ,split: function(s) {
+ var d = "#__delim__#";
+ return s.replace(this.r,d).split(d);
+ }
+};
+var HxOverrides = function() { };
+HxOverrides.__name__ = true;
+HxOverrides.cca = function(s,index) {
+ var x = s.charCodeAt(index);
+ if(x != x) {
+ return undefined;
+ }
+ return x;
+};
+HxOverrides.substr = function(s,pos,len) {
+ if(len == null) {
+ len = s.length;
+ } else if(len < 0) {
+ if(pos == 0) {
+ len = s.length + len;
+ } else {
+ return "";
+ }
+ }
+ return s.substr(pos,len);
+};
+HxOverrides.now = function() {
+ return Date.now();
+};
+Math.__name__ = true;
+var Reflect = function() { };
+Reflect.__name__ = true;
+Reflect.field = function(o,field) {
+ try {
+ return o[field];
+ } catch( _g ) {
+ return null;
+ }
+};
+Reflect.fields = function(o) {
+ var a = [];
+ if(o != null) {
+ var hasOwnProperty = Object.prototype.hasOwnProperty;
+ for( var f in o ) {
+ if(f != "__id__" && f != "hx__closures__" && hasOwnProperty.call(o,f)) {
+ a.push(f);
+ }
+ }
+ }
+ return a;
+};
+Reflect.deleteField = function(o,field) {
+ if(!Object.prototype.hasOwnProperty.call(o,field)) {
+ return false;
+ }
+ delete(o[field]);
+ return true;
+};
+Reflect.copy = function(o) {
+ if(o == null) {
+ return null;
+ }
+ var o2 = { };
+ var _g = 0;
+ var _g1 = Reflect.fields(o);
+ while(_g < _g1.length) {
+ var f = _g1[_g];
+ ++_g;
+ o2[f] = Reflect.field(o,f);
+ }
+ return o2;
+};
+var Std = function() { };
+Std.__name__ = true;
+Std.string = function(s) {
+ return js_Boot.__string_rec(s,"");
+};
+Std.parseInt = function(x) {
+ if(x != null) {
+ var _g = 0;
+ var _g1 = x.length;
+ while(_g < _g1) {
+ var i = _g++;
+ var c = x.charCodeAt(i);
+ if(c <= 8 || c >= 14 && c != 32 && c != 45) {
+ var nc = x.charCodeAt(i + 1);
+ var v = parseInt(x,nc == 120 || nc == 88 ? 16 : 10);
+ if(isNaN(v)) {
+ return null;
+ } else {
+ return v;
+ }
+ }
+ }
+ }
+ return null;
+};
+var StringTools = function() { };
+StringTools.__name__ = true;
+StringTools.isSpace = function(s,pos) {
+ var c = HxOverrides.cca(s,pos);
+ if(!(c > 8 && c < 14)) {
+ return c == 32;
+ } else {
+ return true;
+ }
+};
+StringTools.ltrim = function(s) {
+ var l = s.length;
+ var r = 0;
+ while(r < l && StringTools.isSpace(s,r)) ++r;
+ if(r > 0) {
+ return HxOverrides.substr(s,r,l - r);
+ } else {
+ return s;
+ }
+};
+StringTools.rtrim = function(s) {
+ var l = s.length;
+ var r = 0;
+ while(r < l && StringTools.isSpace(s,l - r - 1)) ++r;
+ if(r > 0) {
+ return HxOverrides.substr(s,0,l - r);
+ } else {
+ return s;
+ }
+};
+StringTools.trim = function(s) {
+ return StringTools.ltrim(StringTools.rtrim(s));
+};
+var haxe_iterators_ArrayIterator = function(array) {
+ this.current = 0;
+ this.array = array;
+};
+haxe_iterators_ArrayIterator.__name__ = true;
+haxe_iterators_ArrayIterator.prototype = {
+ hasNext: function() {
+ return this.current < this.array.length;
+ }
+ ,next: function() {
+ return this.array[this.current++];
+ }
+};
+var js_Boot = function() { };
+js_Boot.__name__ = true;
+js_Boot.__string_rec = function(o,s) {
+ if(o == null) {
+ return "null";
+ }
+ if(s.length >= 5) {
+ return "<...>";
+ }
+ var t = typeof(o);
+ if(t == "function" && (o.__name__ || o.__ename__)) {
+ t = "object";
+ }
+ switch(t) {
+ case "function":
+ return "";
+ case "object":
+ if(((o) instanceof Array)) {
+ var str = "[";
+ s += "\t";
+ var _g = 0;
+ var _g1 = o.length;
+ while(_g < _g1) {
+ var i = _g++;
+ str += (i > 0 ? "," : "") + js_Boot.__string_rec(o[i],s);
+ }
+ str += "]";
+ return str;
+ }
+ var tostr;
+ try {
+ tostr = o.toString;
+ } catch( _g ) {
+ return "???";
+ }
+ if(tostr != null && tostr != Object.toString && typeof(tostr) == "function") {
+ var s2 = o.toString();
+ if(s2 != "[object Object]") {
+ return s2;
+ }
+ }
+ var str = "{\n";
+ s += "\t";
+ var hasp = o.hasOwnProperty != null;
+ var k = null;
+ for( k in o ) {
+ if(hasp && !o.hasOwnProperty(k)) {
+ continue;
+ }
+ if(k == "prototype" || k == "__class__" || k == "__super__" || k == "__interfaces__" || k == "__properties__") {
+ continue;
+ }
+ if(str.length != 2) {
+ str += ", \n";
+ }
+ str += s + k + " : " + js_Boot.__string_rec(o[k],s);
+ }
+ s = s.substring(1);
+ str += "\n" + s + "}";
+ return str;
+ case "string":
+ return o;
+ default:
+ return String(o);
+ }
+};
+var xrfragment_Filter = $hx_exports["xrfragment"]["Filter"] = function(str) {
+ this.q = { };
+ this.str = "";
+ if(str != null) {
+ this.parse(str);
+ }
+};
+xrfragment_Filter.__name__ = true;
+xrfragment_Filter.prototype = {
+ toObject: function() {
+ return Reflect.copy(this.q);
+ }
+ ,get: function() {
+ return Reflect.copy(this.q);
+ }
+ ,parse: function(str) {
+ var token = str.split(" ");
+ var q = { };
+ var process = function(str,prefix) {
+ if(prefix == null) {
+ prefix = "";
+ }
+ str = StringTools.trim(str);
+ var k = str.split("=")[0];
+ var v = str.split("=")[1];
+ var filter = { };
+ if(q[prefix + k]) {
+ filter = q[prefix + k];
+ }
+ if(xrfragment_XRF.isProp.match(str)) {
+ var oper = "";
+ if(str.indexOf(">") != -1) {
+ oper = ">";
+ }
+ if(str.indexOf("<") != -1) {
+ oper = "<";
+ }
+ if(xrfragment_XRF.isExclude.match(k)) {
+ k = HxOverrides.substr(k,1,null);
+ }
+ v = HxOverrides.substr(v,oper.length,null);
+ if(oper.length == 0) {
+ oper = "=";
+ }
+ var rule = { };
+ if(xrfragment_XRF.isNumber.match(v)) {
+ rule[oper] = parseFloat(v);
+ } else {
+ rule[oper] = v;
+ }
+ q["expr"] = rule;
+ }
+ var value = xrfragment_XRF.isDeep.match(str) ? k.split("*").length - 1 : 0;
+ q["deep"] = value;
+ var value = xrfragment_XRF.isExclude.match(str) ? false : true;
+ q["show"] = value;
+ var value = k.replace(xrfragment_XRF.operators.r,"");
+ q["key"] = value;
+ q["value"] = v;
+ };
+ var _g = 0;
+ var _g1 = token.length;
+ while(_g < _g1) {
+ var i = _g++;
+ process(token[i]);
+ }
+ return this.q = q;
+ }
+ ,test: function(obj) {
+ var qualify = false;
+ var _g = 0;
+ var _g1 = Reflect.fields(obj);
+ while(_g < _g1.length) {
+ var k = _g1[_g];
+ ++_g;
+ var v = Std.string(Reflect.field(obj,k));
+ if(this.testProperty(k,v)) {
+ qualify = true;
+ }
+ }
+ var _g = 0;
+ var _g1 = Reflect.fields(obj);
+ while(_g < _g1.length) {
+ var k = _g1[_g];
+ ++_g;
+ var v = Std.string(Reflect.field(obj,k));
+ if(this.testProperty(k,v,true)) {
+ qualify = false;
+ }
+ }
+ return qualify;
+ }
+ ,testProperty: function(property,value,exclude) {
+ var conds = 0;
+ var fails = 0;
+ var qualify = 0;
+ var testprop = function(expr) {
+ conds += 1;
+ fails += expr ? 0 : 1;
+ return expr;
+ };
+ if(this.q[value] != null) {
+ var v = this.q[value];
+ if(v[property] != null) {
+ return v[property];
+ }
+ }
+ if(Reflect.field(this.q,"expr")) {
+ var f = Reflect.field(this.q,"expr");
+ if(!Reflect.field(this.q,"show")) {
+ if(Reflect.field(f,"!=") != null && testprop((value == null ? "null" : "" + value) == Std.string(Reflect.field(f,"!="))) && exclude) {
+ ++qualify;
+ }
+ } else {
+ if(Reflect.field(f,"*") != null && testprop(parseFloat(value) != null)) {
+ ++qualify;
+ }
+ if(Reflect.field(f,">") != null && testprop(parseFloat(value) >= parseFloat(Reflect.field(f,">")))) {
+ ++qualify;
+ }
+ if(Reflect.field(f,"<") != null && testprop(parseFloat(value) <= parseFloat(Reflect.field(f,"<")))) {
+ ++qualify;
+ }
+ if(Reflect.field(f,"=") != null && (testprop(value == Reflect.field(f,"=")) || testprop(parseFloat(value) == parseFloat(Reflect.field(f,"="))))) {
+ ++qualify;
+ }
+ }
+ }
+ return qualify > 0;
+ }
+};
+var xrfragment_Parser = $hx_exports["xrfragment"]["Parser"] = function() { };
+xrfragment_Parser.__name__ = true;
+xrfragment_Parser.parse = function(key,value,store,index) {
+ var Frag_h = Object.create(null);
+ Frag_h["#"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_PREDEFINED_VIEW | xrfragment_XRF.PV_EXECUTE;
+ Frag_h["src"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_URL;
+ Frag_h["href"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_URL | xrfragment_XRF.T_PREDEFINED_VIEW;
+ Frag_h["tag"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["pos"] = xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_VECTOR3 | xrfragment_XRF.T_STRING | xrfragment_XRF.T_STRING_OBJ | xrfragment_XRF.METADATA | xrfragment_XRF.NAVIGATOR;
+ Frag_h["rot"] = xrfragment_XRF.QUERY_OPERATOR | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_VECTOR3 | xrfragment_XRF.METADATA | xrfragment_XRF.NAVIGATOR;
+ Frag_h["t"] = xrfragment_XRF.ASSET | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_FLOAT | xrfragment_XRF.T_VECTOR2 | xrfragment_XRF.T_STRING | xrfragment_XRF.NAVIGATOR | xrfragment_XRF.METADATA;
+ Frag_h["tv"] = xrfragment_XRF.ASSET | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_FLOAT | xrfragment_XRF.T_VECTOR2 | xrfragment_XRF.T_VECTOR3 | xrfragment_XRF.NAVIGATOR | xrfragment_XRF.METADATA;
+ Frag_h["namespace"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["SPDX"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["unit"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["description"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["session"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_URL | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.NAVIGATOR | xrfragment_XRF.METADATA | xrfragment_XRF.PROMPT;
+ var keyStripped = key.replace(xrfragment_XRF.operators.r,"");
+ var isPVDynamic = key.length > 0 && !Object.prototype.hasOwnProperty.call(Frag_h,key);
+ var isPVDefault = value.length == 0 && key.length > 0 && key == "#";
+ if(isPVDynamic) {
+ var v = new xrfragment_XRF(key,xrfragment_XRF.PV_EXECUTE | xrfragment_XRF.NAVIGATOR,index);
+ v.validate(value);
+ store[keyStripped] = v;
+ return true;
+ }
+ var v = new xrfragment_XRF(key,Frag_h[key],index);
+ if(Object.prototype.hasOwnProperty.call(Frag_h,key)) {
+ if(!v.validate(value)) {
+ console.log("src/xrfragment/Parser.hx:66:","⚠ fragment '" + key + "' has incompatible value (" + value + ")");
+ return false;
+ }
+ store[keyStripped] = v;
+ if(xrfragment_Parser.debug) {
+ console.log("src/xrfragment/Parser.hx:70:","✔ " + key + ": " + v.string);
+ }
+ } else {
+ if(typeof(value) == "string") {
+ v.guessType(v,value);
+ }
+ v.noXRF = true;
+ store[keyStripped] = v;
+ }
+ return true;
+};
+var xrfragment_URI = $hx_exports["xrfragment"]["URI"] = function() { };
+xrfragment_URI.__name__ = true;
+xrfragment_URI.parse = function(url,filter) {
+ var store = { };
+ if(url == null || url.indexOf("#") == -1) {
+ return store;
+ }
+ var fragment = url.split("#");
+ var splitArray = fragment[1].split("&");
+ var _g = 0;
+ var _g1 = splitArray.length;
+ while(_g < _g1) {
+ var i = _g++;
+ var splitByEqual = splitArray[i].split("=");
+ var regexPlus = new EReg("\\+","g");
+ var key = splitByEqual[0];
+ var value = "";
+ if(splitByEqual.length > 1) {
+ var s = regexPlus.split(splitByEqual[1]).join(" ");
+ value = decodeURIComponent(s.split("+").join(" "));
+ }
+ var ok = xrfragment_Parser.parse(key,value,store,i);
+ }
+ if(filter != null && filter != 0) {
+ var _g = 0;
+ var _g1 = Reflect.fields(store);
+ while(_g < _g1.length) {
+ var key = _g1[_g];
+ ++_g;
+ var xrf = store[key];
+ if(!xrf.is(filter)) {
+ Reflect.deleteField(store,key);
+ }
+ }
+ }
+ return store;
+};
+var xrfragment_XRF = $hx_exports["xrfragment"]["XRF"] = function(_fragment,_flags,_index) {
+ this.fragment = _fragment;
+ this.flags = _flags;
+ this.index = _index;
+};
+xrfragment_XRF.__name__ = true;
+xrfragment_XRF.set = function(flag,flags) {
+ return flags | flag;
+};
+xrfragment_XRF.unset = function(flag,flags) {
+ return flags & ~flag;
+};
+xrfragment_XRF.prototype = {
+ is: function(flag) {
+ var v = this.flags;
+ if(!(typeof(v) == "number" && ((v | 0) === v))) {
+ this.flags = 0;
+ }
+ return (this.flags & flag) != 0;
+ }
+ ,validate: function(value) {
+ this.guessType(this,value);
+ var ok = true;
+ if(!this.is(xrfragment_XRF.T_FLOAT) && this.is(xrfragment_XRF.T_VECTOR2) && !(typeof(this.x) == "number" && typeof(this.y) == "number")) {
+ ok = false;
+ }
+ if(!(this.is(xrfragment_XRF.T_VECTOR2) || this.is(xrfragment_XRF.T_STRING)) && this.is(xrfragment_XRF.T_VECTOR3) && !(typeof(this.x) == "number" && typeof(this.y) == "number" && typeof(this.z) == "number")) {
+ ok = false;
+ }
+ return ok;
+ }
+ ,guessType: function(v,str) {
+ v.string = str;
+ if(typeof(str) != "string") {
+ return;
+ }
+ if(str.length > 0) {
+ if(str.split(",").length > 1) {
+ var xyzw = str.split(",");
+ if(xyzw.length > 0) {
+ v.x = parseFloat(xyzw[0]);
+ }
+ if(xyzw.length > 1) {
+ v.y = parseFloat(xyzw[1]);
+ }
+ if(xyzw.length > 2) {
+ v.z = parseFloat(xyzw[2]);
+ }
+ if(xyzw.length > 3) {
+ v.w = parseFloat(xyzw[3]);
+ }
+ }
+ if(xrfragment_XRF.isColor.match(str)) {
+ v.color = str;
+ }
+ if(xrfragment_XRF.isFloat.match(str)) {
+ v.x = parseFloat(str);
+ v.float = v.x;
+ }
+ if(xrfragment_XRF.isInt.match(str)) {
+ v.int = Std.parseInt(str);
+ v.x = v.int;
+ }
+ v.filter = new xrfragment_Filter(v.fragment + "=" + v.string);
+ } else {
+ v.filter = new xrfragment_Filter(v.fragment);
+ }
+ }
+};
+if(typeof(performance) != "undefined" ? typeof(performance.now) == "function" : false) {
+ HxOverrides.now = performance.now.bind(performance);
+}
+String.__name__ = true;
+Array.__name__ = true;
+js_Boot.__toStr = ({ }).toString;
+xrfragment_Parser.error = "";
+xrfragment_Parser.debug = false;
+xrfragment_XRF.ASSET = 1;
+xrfragment_XRF.PROP_BIND = 2;
+xrfragment_XRF.QUERY_OPERATOR = 4;
+xrfragment_XRF.PROMPT = 8;
+xrfragment_XRF.ROUNDROBIN = 16;
+xrfragment_XRF.NAVIGATOR = 32;
+xrfragment_XRF.METADATA = 64;
+xrfragment_XRF.PV_OVERRIDE = 128;
+xrfragment_XRF.PV_EXECUTE = 256;
+xrfragment_XRF.T_COLOR = 8192;
+xrfragment_XRF.T_INT = 16384;
+xrfragment_XRF.T_FLOAT = 32768;
+xrfragment_XRF.T_VECTOR2 = 65536;
+xrfragment_XRF.T_VECTOR3 = 131072;
+xrfragment_XRF.T_URL = 262144;
+xrfragment_XRF.T_PREDEFINED_VIEW = 524288;
+xrfragment_XRF.T_STRING = 1048576;
+xrfragment_XRF.T_STRING_OBJ = 2097152;
+xrfragment_XRF.T_STRING_OBJ_PROP = 4194304;
+xrfragment_XRF.isColor = new EReg("^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$","");
+xrfragment_XRF.isInt = new EReg("^[-0-9]+$","");
+xrfragment_XRF.isFloat = new EReg("^[-0-9]+\\.[0-9]+$","");
+xrfragment_XRF.isVector = new EReg("([,]+|\\w)","");
+xrfragment_XRF.isUrl = new EReg("(://)?\\..*","");
+xrfragment_XRF.isUrlOrPretypedView = new EReg("(^#|://)?\\..*","");
+xrfragment_XRF.isString = new EReg(".*","");
+xrfragment_XRF.operators = new EReg("(^-|[\\*]+)","");
+xrfragment_XRF.isProp = new EReg("^.*=[><=]?","");
+xrfragment_XRF.isExclude = new EReg("^-","");
+xrfragment_XRF.isDeep = new EReg("\\*","");
+xrfragment_XRF.isNumber = new EReg("^[0-9\\.]+$","");
+})({});
+var xrfragment = $hx_exports["xrfragment"];
+export default xrfragment;
+var $hx_exports = typeof exports != "undefined" ? exports : typeof window != "undefined" ? window : typeof self != "undefined" ? self : this;
+(function ($global) { "use strict";
+$hx_exports["xrfragment"] = $hx_exports["xrfragment"] || {};
+var EReg = function(r,opt) {
+ this.r = new RegExp(r,opt.split("u").join(""));
+};
+EReg.__name__ = true;
+EReg.prototype = {
+ match: function(s) {
+ if(this.r.global) {
+ this.r.lastIndex = 0;
+ }
+ this.r.m = this.r.exec(s);
+ this.r.s = s;
+ return this.r.m != null;
+ }
+ ,split: function(s) {
+ var d = "#__delim__#";
+ return s.replace(this.r,d).split(d);
+ }
+};
+var HxOverrides = function() { };
+HxOverrides.__name__ = true;
+HxOverrides.cca = function(s,index) {
+ var x = s.charCodeAt(index);
+ if(x != x) {
+ return undefined;
+ }
+ return x;
+};
+HxOverrides.substr = function(s,pos,len) {
+ if(len == null) {
+ len = s.length;
+ } else if(len < 0) {
+ if(pos == 0) {
+ len = s.length + len;
+ } else {
+ return "";
+ }
+ }
+ return s.substr(pos,len);
+};
+HxOverrides.now = function() {
+ return Date.now();
+};
+Math.__name__ = true;
+var Reflect = function() { };
+Reflect.__name__ = true;
+Reflect.field = function(o,field) {
+ try {
+ return o[field];
+ } catch( _g ) {
+ return null;
+ }
+};
+Reflect.fields = function(o) {
+ var a = [];
+ if(o != null) {
+ var hasOwnProperty = Object.prototype.hasOwnProperty;
+ for( var f in o ) {
+ if(f != "__id__" && f != "hx__closures__" && hasOwnProperty.call(o,f)) {
+ a.push(f);
+ }
+ }
+ }
+ return a;
+};
+Reflect.deleteField = function(o,field) {
+ if(!Object.prototype.hasOwnProperty.call(o,field)) {
+ return false;
+ }
+ delete(o[field]);
+ return true;
+};
+Reflect.copy = function(o) {
+ if(o == null) {
+ return null;
+ }
+ var o2 = { };
+ var _g = 0;
+ var _g1 = Reflect.fields(o);
+ while(_g < _g1.length) {
+ var f = _g1[_g];
+ ++_g;
+ o2[f] = Reflect.field(o,f);
+ }
+ return o2;
+};
+var Std = function() { };
+Std.__name__ = true;
+Std.string = function(s) {
+ return js_Boot.__string_rec(s,"");
+};
+Std.parseInt = function(x) {
+ if(x != null) {
+ var _g = 0;
+ var _g1 = x.length;
+ while(_g < _g1) {
+ var i = _g++;
+ var c = x.charCodeAt(i);
+ if(c <= 8 || c >= 14 && c != 32 && c != 45) {
+ var nc = x.charCodeAt(i + 1);
+ var v = parseInt(x,nc == 120 || nc == 88 ? 16 : 10);
+ if(isNaN(v)) {
+ return null;
+ } else {
+ return v;
+ }
+ }
+ }
+ }
+ return null;
+};
+var StringTools = function() { };
+StringTools.__name__ = true;
+StringTools.isSpace = function(s,pos) {
+ var c = HxOverrides.cca(s,pos);
+ if(!(c > 8 && c < 14)) {
+ return c == 32;
+ } else {
+ return true;
+ }
+};
+StringTools.ltrim = function(s) {
+ var l = s.length;
+ var r = 0;
+ while(r < l && StringTools.isSpace(s,r)) ++r;
+ if(r > 0) {
+ return HxOverrides.substr(s,r,l - r);
+ } else {
+ return s;
+ }
+};
+StringTools.rtrim = function(s) {
+ var l = s.length;
+ var r = 0;
+ while(r < l && StringTools.isSpace(s,l - r - 1)) ++r;
+ if(r > 0) {
+ return HxOverrides.substr(s,0,l - r);
+ } else {
+ return s;
+ }
+};
+StringTools.trim = function(s) {
+ return StringTools.ltrim(StringTools.rtrim(s));
+};
+var haxe_iterators_ArrayIterator = function(array) {
+ this.current = 0;
+ this.array = array;
+};
+haxe_iterators_ArrayIterator.__name__ = true;
+haxe_iterators_ArrayIterator.prototype = {
+ hasNext: function() {
+ return this.current < this.array.length;
+ }
+ ,next: function() {
+ return this.array[this.current++];
+ }
+};
+var js_Boot = function() { };
+js_Boot.__name__ = true;
+js_Boot.__string_rec = function(o,s) {
+ if(o == null) {
+ return "null";
+ }
+ if(s.length >= 5) {
+ return "<...>";
+ }
+ var t = typeof(o);
+ if(t == "function" && (o.__name__ || o.__ename__)) {
+ t = "object";
+ }
+ switch(t) {
+ case "function":
+ return "";
+ case "object":
+ if(((o) instanceof Array)) {
+ var str = "[";
+ s += "\t";
+ var _g = 0;
+ var _g1 = o.length;
+ while(_g < _g1) {
+ var i = _g++;
+ str += (i > 0 ? "," : "") + js_Boot.__string_rec(o[i],s);
+ }
+ str += "]";
+ return str;
+ }
+ var tostr;
+ try {
+ tostr = o.toString;
+ } catch( _g ) {
+ return "???";
+ }
+ if(tostr != null && tostr != Object.toString && typeof(tostr) == "function") {
+ var s2 = o.toString();
+ if(s2 != "[object Object]") {
+ return s2;
+ }
+ }
+ var str = "{\n";
+ s += "\t";
+ var hasp = o.hasOwnProperty != null;
+ var k = null;
+ for( k in o ) {
+ if(hasp && !o.hasOwnProperty(k)) {
+ continue;
+ }
+ if(k == "prototype" || k == "__class__" || k == "__super__" || k == "__interfaces__" || k == "__properties__") {
+ continue;
+ }
+ if(str.length != 2) {
+ str += ", \n";
+ }
+ str += s + k + " : " + js_Boot.__string_rec(o[k],s);
+ }
+ s = s.substring(1);
+ str += "\n" + s + "}";
+ return str;
+ case "string":
+ return o;
+ default:
+ return String(o);
+ }
+};
+var xrfragment_Filter = $hx_exports["xrfragment"]["Filter"] = function(str) {
+ this.q = { };
+ this.str = "";
+ if(str != null) {
+ this.parse(str);
+ }
+};
+xrfragment_Filter.__name__ = true;
+xrfragment_Filter.prototype = {
+ toObject: function() {
+ return Reflect.copy(this.q);
+ }
+ ,get: function() {
+ return Reflect.copy(this.q);
+ }
+ ,parse: function(str) {
+ var token = str.split(" ");
+ var q = { };
+ var process = function(str,prefix) {
+ if(prefix == null) {
+ prefix = "";
+ }
+ str = StringTools.trim(str);
+ var k = str.split("=")[0];
+ var v = str.split("=")[1];
+ var filter = { };
+ if(q[prefix + k]) {
+ filter = q[prefix + k];
+ }
+ if(xrfragment_XRF.isProp.match(str)) {
+ var oper = "";
+ if(str.indexOf(">") != -1) {
+ oper = ">";
+ }
+ if(str.indexOf("<") != -1) {
+ oper = "<";
+ }
+ if(xrfragment_XRF.isExclude.match(k)) {
+ k = HxOverrides.substr(k,1,null);
+ }
+ v = HxOverrides.substr(v,oper.length,null);
+ if(oper.length == 0) {
+ oper = "=";
+ }
+ var rule = { };
+ if(xrfragment_XRF.isNumber.match(v)) {
+ rule[oper] = parseFloat(v);
+ } else {
+ rule[oper] = v;
+ }
+ q["expr"] = rule;
+ }
+ var value = xrfragment_XRF.isDeep.match(str) ? k.split("*").length - 1 : 0;
+ q["deep"] = value;
+ var value = xrfragment_XRF.isExclude.match(str) ? false : true;
+ q["show"] = value;
+ var value = k.replace(xrfragment_XRF.operators.r,"");
+ q["key"] = value;
+ q["value"] = v;
+ };
+ var _g = 0;
+ var _g1 = token.length;
+ while(_g < _g1) {
+ var i = _g++;
+ process(token[i]);
+ }
+ return this.q = q;
+ }
+ ,test: function(obj) {
+ var qualify = false;
+ var _g = 0;
+ var _g1 = Reflect.fields(obj);
+ while(_g < _g1.length) {
+ var k = _g1[_g];
+ ++_g;
+ var v = Std.string(Reflect.field(obj,k));
+ if(this.testProperty(k,v)) {
+ qualify = true;
+ }
+ }
+ var _g = 0;
+ var _g1 = Reflect.fields(obj);
+ while(_g < _g1.length) {
+ var k = _g1[_g];
+ ++_g;
+ var v = Std.string(Reflect.field(obj,k));
+ if(this.testProperty(k,v,true)) {
+ qualify = false;
+ }
+ }
+ return qualify;
+ }
+ ,testProperty: function(property,value,exclude) {
+ var conds = 0;
+ var fails = 0;
+ var qualify = 0;
+ var testprop = function(expr) {
+ conds += 1;
+ fails += expr ? 0 : 1;
+ return expr;
+ };
+ if(this.q[value] != null) {
+ var v = this.q[value];
+ if(v[property] != null) {
+ return v[property];
+ }
+ }
+ if(Reflect.field(this.q,"expr")) {
+ var f = Reflect.field(this.q,"expr");
+ if(!Reflect.field(this.q,"show")) {
+ if(Reflect.field(f,"!=") != null && testprop((value == null ? "null" : "" + value) == Std.string(Reflect.field(f,"!="))) && exclude) {
+ ++qualify;
+ }
+ } else {
+ if(Reflect.field(f,"*") != null && testprop(parseFloat(value) != null)) {
+ ++qualify;
+ }
+ if(Reflect.field(f,">") != null && testprop(parseFloat(value) >= parseFloat(Reflect.field(f,">")))) {
+ ++qualify;
+ }
+ if(Reflect.field(f,"<") != null && testprop(parseFloat(value) <= parseFloat(Reflect.field(f,"<")))) {
+ ++qualify;
+ }
+ if(Reflect.field(f,"=") != null && (testprop(value == Reflect.field(f,"=")) || testprop(parseFloat(value) == parseFloat(Reflect.field(f,"="))))) {
+ ++qualify;
+ }
+ }
+ }
+ return qualify > 0;
+ }
+};
+var xrfragment_Parser = $hx_exports["xrfragment"]["Parser"] = function() { };
+xrfragment_Parser.__name__ = true;
+xrfragment_Parser.parse = function(key,value,store,index) {
+ var Frag_h = Object.create(null);
+ Frag_h["#"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_PREDEFINED_VIEW | xrfragment_XRF.PV_EXECUTE;
+ Frag_h["src"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_URL;
+ Frag_h["href"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_URL | xrfragment_XRF.T_PREDEFINED_VIEW;
+ Frag_h["tag"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["pos"] = xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_VECTOR3 | xrfragment_XRF.T_STRING | xrfragment_XRF.T_STRING_OBJ | xrfragment_XRF.METADATA | xrfragment_XRF.NAVIGATOR;
+ Frag_h["rot"] = xrfragment_XRF.QUERY_OPERATOR | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_VECTOR3 | xrfragment_XRF.METADATA | xrfragment_XRF.NAVIGATOR;
+ Frag_h["t"] = xrfragment_XRF.ASSET | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_FLOAT | xrfragment_XRF.T_VECTOR2 | xrfragment_XRF.T_STRING | xrfragment_XRF.NAVIGATOR | xrfragment_XRF.METADATA;
+ Frag_h["tv"] = xrfragment_XRF.ASSET | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_FLOAT | xrfragment_XRF.T_VECTOR2 | xrfragment_XRF.T_VECTOR3 | xrfragment_XRF.NAVIGATOR | xrfragment_XRF.METADATA;
+ Frag_h["namespace"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["SPDX"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["unit"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["description"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["session"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_URL | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.NAVIGATOR | xrfragment_XRF.METADATA | xrfragment_XRF.PROMPT;
+ var keyStripped = key.replace(xrfragment_XRF.operators.r,"");
+ var isPVDynamic = key.length > 0 && !Object.prototype.hasOwnProperty.call(Frag_h,key);
+ var isPVDefault = value.length == 0 && key.length > 0 && key == "#";
+ if(isPVDynamic) {
+ var v = new xrfragment_XRF(key,xrfragment_XRF.PV_EXECUTE | xrfragment_XRF.NAVIGATOR,index);
+ v.validate(value);
+ store[keyStripped] = v;
+ return true;
+ }
+ var v = new xrfragment_XRF(key,Frag_h[key],index);
+ if(Object.prototype.hasOwnProperty.call(Frag_h,key)) {
+ if(!v.validate(value)) {
+ console.log("src/xrfragment/Parser.hx:66:","⚠ fragment '" + key + "' has incompatible value (" + value + ")");
+ return false;
+ }
+ store[keyStripped] = v;
+ if(xrfragment_Parser.debug) {
+ console.log("src/xrfragment/Parser.hx:70:","✔ " + key + ": " + v.string);
+ }
+ } else {
+ if(typeof(value) == "string") {
+ v.guessType(v,value);
+ }
+ v.noXRF = true;
+ store[keyStripped] = v;
+ }
+ return true;
+};
+var xrfragment_URI = $hx_exports["xrfragment"]["URI"] = function() { };
+xrfragment_URI.__name__ = true;
+xrfragment_URI.parse = function(url,filter) {
+ var store = { };
+ if(url == null || url.indexOf("#") == -1) {
+ return store;
+ }
+ var fragment = url.split("#");
+ var splitArray = fragment[1].split("&");
+ var _g = 0;
+ var _g1 = splitArray.length;
+ while(_g < _g1) {
+ var i = _g++;
+ var splitByEqual = splitArray[i].split("=");
+ var regexPlus = new EReg("\\+","g");
+ var key = splitByEqual[0];
+ var value = "";
+ if(splitByEqual.length > 1) {
+ var s = regexPlus.split(splitByEqual[1]).join(" ");
+ value = decodeURIComponent(s.split("+").join(" "));
+ }
+ var ok = xrfragment_Parser.parse(key,value,store,i);
+ }
+ if(filter != null && filter != 0) {
+ var _g = 0;
+ var _g1 = Reflect.fields(store);
+ while(_g < _g1.length) {
+ var key = _g1[_g];
+ ++_g;
+ var xrf = store[key];
+ if(!xrf.is(filter)) {
+ Reflect.deleteField(store,key);
+ }
+ }
+ }
+ return store;
+};
+var xrfragment_XRF = $hx_exports["xrfragment"]["XRF"] = function(_fragment,_flags,_index) {
+ this.fragment = _fragment;
+ this.flags = _flags;
+ this.index = _index;
+};
+xrfragment_XRF.__name__ = true;
+xrfragment_XRF.set = function(flag,flags) {
+ return flags | flag;
+};
+xrfragment_XRF.unset = function(flag,flags) {
+ return flags & ~flag;
+};
+xrfragment_XRF.prototype = {
+ is: function(flag) {
+ var v = this.flags;
+ if(!(typeof(v) == "number" && ((v | 0) === v))) {
+ this.flags = 0;
+ }
+ return (this.flags & flag) != 0;
+ }
+ ,validate: function(value) {
+ this.guessType(this,value);
+ var ok = true;
+ if(!this.is(xrfragment_XRF.T_FLOAT) && this.is(xrfragment_XRF.T_VECTOR2) && !(typeof(this.x) == "number" && typeof(this.y) == "number")) {
+ ok = false;
+ }
+ if(!(this.is(xrfragment_XRF.T_VECTOR2) || this.is(xrfragment_XRF.T_STRING)) && this.is(xrfragment_XRF.T_VECTOR3) && !(typeof(this.x) == "number" && typeof(this.y) == "number" && typeof(this.z) == "number")) {
+ ok = false;
+ }
+ return ok;
+ }
+ ,guessType: function(v,str) {
+ v.string = str;
+ if(typeof(str) != "string") {
+ return;
+ }
+ if(str.length > 0) {
+ if(str.split(",").length > 1) {
+ var xyzw = str.split(",");
+ if(xyzw.length > 0) {
+ v.x = parseFloat(xyzw[0]);
+ }
+ if(xyzw.length > 1) {
+ v.y = parseFloat(xyzw[1]);
+ }
+ if(xyzw.length > 2) {
+ v.z = parseFloat(xyzw[2]);
+ }
+ if(xyzw.length > 3) {
+ v.w = parseFloat(xyzw[3]);
+ }
+ }
+ if(xrfragment_XRF.isColor.match(str)) {
+ v.color = str;
+ }
+ if(xrfragment_XRF.isFloat.match(str)) {
+ v.x = parseFloat(str);
+ v.float = v.x;
+ }
+ if(xrfragment_XRF.isInt.match(str)) {
+ v.int = Std.parseInt(str);
+ v.x = v.int;
+ }
+ v.filter = new xrfragment_Filter(v.fragment + "=" + v.string);
+ } else {
+ v.filter = new xrfragment_Filter(v.fragment);
+ }
+ }
+};
+if(typeof(performance) != "undefined" ? typeof(performance.now) == "function" : false) {
+ HxOverrides.now = performance.now.bind(performance);
+}
+String.__name__ = true;
+Array.__name__ = true;
+js_Boot.__toStr = ({ }).toString;
+xrfragment_Parser.error = "";
+xrfragment_Parser.debug = false;
+xrfragment_XRF.ASSET = 1;
+xrfragment_XRF.PROP_BIND = 2;
+xrfragment_XRF.QUERY_OPERATOR = 4;
+xrfragment_XRF.PROMPT = 8;
+xrfragment_XRF.ROUNDROBIN = 16;
+xrfragment_XRF.NAVIGATOR = 32;
+xrfragment_XRF.METADATA = 64;
+xrfragment_XRF.PV_OVERRIDE = 128;
+xrfragment_XRF.PV_EXECUTE = 256;
+xrfragment_XRF.T_COLOR = 8192;
+xrfragment_XRF.T_INT = 16384;
+xrfragment_XRF.T_FLOAT = 32768;
+xrfragment_XRF.T_VECTOR2 = 65536;
+xrfragment_XRF.T_VECTOR3 = 131072;
+xrfragment_XRF.T_URL = 262144;
+xrfragment_XRF.T_PREDEFINED_VIEW = 524288;
+xrfragment_XRF.T_STRING = 1048576;
+xrfragment_XRF.T_STRING_OBJ = 2097152;
+xrfragment_XRF.T_STRING_OBJ_PROP = 4194304;
+xrfragment_XRF.isColor = new EReg("^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$","");
+xrfragment_XRF.isInt = new EReg("^[-0-9]+$","");
+xrfragment_XRF.isFloat = new EReg("^[-0-9]+\\.[0-9]+$","");
+xrfragment_XRF.isVector = new EReg("([,]+|\\w)","");
+xrfragment_XRF.isUrl = new EReg("(://)?\\..*","");
+xrfragment_XRF.isUrlOrPretypedView = new EReg("(^#|://)?\\..*","");
+xrfragment_XRF.isString = new EReg(".*","");
+xrfragment_XRF.operators = new EReg("(^-|[\\*]+)","");
+xrfragment_XRF.isProp = new EReg("^.*=[><=]?","");
+xrfragment_XRF.isExclude = new EReg("^-","");
+xrfragment_XRF.isDeep = new EReg("\\*","");
+xrfragment_XRF.isNumber = new EReg("^[0-9\\.]+$","");
+})({});
+var xrfragment = $hx_exports["xrfragment"];
+export default xrfragment;
+var $hx_exports = typeof exports != "undefined" ? exports : typeof window != "undefined" ? window : typeof self != "undefined" ? self : this;
+(function ($global) { "use strict";
+$hx_exports["xrfragment"] = $hx_exports["xrfragment"] || {};
+var EReg = function(r,opt) {
+ this.r = new RegExp(r,opt.split("u").join(""));
+};
+EReg.__name__ = true;
+EReg.prototype = {
+ match: function(s) {
+ if(this.r.global) {
+ this.r.lastIndex = 0;
+ }
+ this.r.m = this.r.exec(s);
+ this.r.s = s;
+ return this.r.m != null;
+ }
+ ,split: function(s) {
+ var d = "#__delim__#";
+ return s.replace(this.r,d).split(d);
+ }
+};
+var HxOverrides = function() { };
+HxOverrides.__name__ = true;
+HxOverrides.cca = function(s,index) {
+ var x = s.charCodeAt(index);
+ if(x != x) {
+ return undefined;
+ }
+ return x;
+};
+HxOverrides.substr = function(s,pos,len) {
+ if(len == null) {
+ len = s.length;
+ } else if(len < 0) {
+ if(pos == 0) {
+ len = s.length + len;
+ } else {
+ return "";
+ }
+ }
+ return s.substr(pos,len);
+};
+HxOverrides.now = function() {
+ return Date.now();
+};
+Math.__name__ = true;
+var Reflect = function() { };
+Reflect.__name__ = true;
+Reflect.field = function(o,field) {
+ try {
+ return o[field];
+ } catch( _g ) {
+ return null;
+ }
+};
+Reflect.fields = function(o) {
+ var a = [];
+ if(o != null) {
+ var hasOwnProperty = Object.prototype.hasOwnProperty;
+ for( var f in o ) {
+ if(f != "__id__" && f != "hx__closures__" && hasOwnProperty.call(o,f)) {
+ a.push(f);
+ }
+ }
+ }
+ return a;
+};
+Reflect.deleteField = function(o,field) {
+ if(!Object.prototype.hasOwnProperty.call(o,field)) {
+ return false;
+ }
+ delete(o[field]);
+ return true;
+};
+Reflect.copy = function(o) {
+ if(o == null) {
+ return null;
+ }
+ var o2 = { };
+ var _g = 0;
+ var _g1 = Reflect.fields(o);
+ while(_g < _g1.length) {
+ var f = _g1[_g];
+ ++_g;
+ o2[f] = Reflect.field(o,f);
+ }
+ return o2;
+};
+var Std = function() { };
+Std.__name__ = true;
+Std.string = function(s) {
+ return js_Boot.__string_rec(s,"");
+};
+Std.parseInt = function(x) {
+ if(x != null) {
+ var _g = 0;
+ var _g1 = x.length;
+ while(_g < _g1) {
+ var i = _g++;
+ var c = x.charCodeAt(i);
+ if(c <= 8 || c >= 14 && c != 32 && c != 45) {
+ var nc = x.charCodeAt(i + 1);
+ var v = parseInt(x,nc == 120 || nc == 88 ? 16 : 10);
+ if(isNaN(v)) {
+ return null;
+ } else {
+ return v;
+ }
+ }
+ }
+ }
+ return null;
+};
+var StringTools = function() { };
+StringTools.__name__ = true;
+StringTools.isSpace = function(s,pos) {
+ var c = HxOverrides.cca(s,pos);
+ if(!(c > 8 && c < 14)) {
+ return c == 32;
+ } else {
+ return true;
+ }
+};
+StringTools.ltrim = function(s) {
+ var l = s.length;
+ var r = 0;
+ while(r < l && StringTools.isSpace(s,r)) ++r;
+ if(r > 0) {
+ return HxOverrides.substr(s,r,l - r);
+ } else {
+ return s;
+ }
+};
+StringTools.rtrim = function(s) {
+ var l = s.length;
+ var r = 0;
+ while(r < l && StringTools.isSpace(s,l - r - 1)) ++r;
+ if(r > 0) {
+ return HxOverrides.substr(s,0,l - r);
+ } else {
+ return s;
+ }
+};
+StringTools.trim = function(s) {
+ return StringTools.ltrim(StringTools.rtrim(s));
+};
+var haxe_iterators_ArrayIterator = function(array) {
+ this.current = 0;
+ this.array = array;
+};
+haxe_iterators_ArrayIterator.__name__ = true;
+haxe_iterators_ArrayIterator.prototype = {
+ hasNext: function() {
+ return this.current < this.array.length;
+ }
+ ,next: function() {
+ return this.array[this.current++];
+ }
+};
+var js_Boot = function() { };
+js_Boot.__name__ = true;
+js_Boot.__string_rec = function(o,s) {
+ if(o == null) {
+ return "null";
+ }
+ if(s.length >= 5) {
+ return "<...>";
+ }
+ var t = typeof(o);
+ if(t == "function" && (o.__name__ || o.__ename__)) {
+ t = "object";
+ }
+ switch(t) {
+ case "function":
+ return "";
+ case "object":
+ if(((o) instanceof Array)) {
+ var str = "[";
+ s += "\t";
+ var _g = 0;
+ var _g1 = o.length;
+ while(_g < _g1) {
+ var i = _g++;
+ str += (i > 0 ? "," : "") + js_Boot.__string_rec(o[i],s);
+ }
+ str += "]";
+ return str;
+ }
+ var tostr;
+ try {
+ tostr = o.toString;
+ } catch( _g ) {
+ return "???";
+ }
+ if(tostr != null && tostr != Object.toString && typeof(tostr) == "function") {
+ var s2 = o.toString();
+ if(s2 != "[object Object]") {
+ return s2;
+ }
+ }
+ var str = "{\n";
+ s += "\t";
+ var hasp = o.hasOwnProperty != null;
+ var k = null;
+ for( k in o ) {
+ if(hasp && !o.hasOwnProperty(k)) {
+ continue;
+ }
+ if(k == "prototype" || k == "__class__" || k == "__super__" || k == "__interfaces__" || k == "__properties__") {
+ continue;
+ }
+ if(str.length != 2) {
+ str += ", \n";
+ }
+ str += s + k + " : " + js_Boot.__string_rec(o[k],s);
+ }
+ s = s.substring(1);
+ str += "\n" + s + "}";
+ return str;
+ case "string":
+ return o;
+ default:
+ return String(o);
+ }
+};
+var xrfragment_Filter = $hx_exports["xrfragment"]["Filter"] = function(str) {
+ this.q = { };
+ this.str = "";
+ if(str != null) {
+ this.parse(str);
+ }
+};
+xrfragment_Filter.__name__ = true;
+xrfragment_Filter.prototype = {
+ toObject: function() {
+ return Reflect.copy(this.q);
+ }
+ ,get: function() {
+ return Reflect.copy(this.q);
+ }
+ ,parse: function(str) {
+ var token = str.split(" ");
+ var q = { };
+ var process = function(str,prefix) {
+ if(prefix == null) {
+ prefix = "";
+ }
+ str = StringTools.trim(str);
+ var k = str.split("=")[0];
+ var v = str.split("=")[1];
+ var filter = { };
+ if(q[prefix + k]) {
+ filter = q[prefix + k];
+ }
+ if(xrfragment_XRF.isProp.match(str)) {
+ var oper = "";
+ if(str.indexOf(">") != -1) {
+ oper = ">";
+ }
+ if(str.indexOf("<") != -1) {
+ oper = "<";
+ }
+ if(xrfragment_XRF.isExclude.match(k)) {
+ k = HxOverrides.substr(k,1,null);
+ }
+ v = HxOverrides.substr(v,oper.length,null);
+ if(oper.length == 0) {
+ oper = "=";
+ }
+ var rule = { };
+ if(xrfragment_XRF.isNumber.match(v)) {
+ rule[oper] = parseFloat(v);
+ } else {
+ rule[oper] = v;
+ }
+ q["expr"] = rule;
+ }
+ var value = xrfragment_XRF.isDeep.match(str) ? k.split("*").length - 1 : 0;
+ q["deep"] = value;
+ var value = xrfragment_XRF.isExclude.match(str) ? false : true;
+ q["show"] = value;
+ var value = k.replace(xrfragment_XRF.operators.r,"");
+ q["key"] = value;
+ q["value"] = v;
+ };
+ var _g = 0;
+ var _g1 = token.length;
+ while(_g < _g1) {
+ var i = _g++;
+ process(token[i]);
+ }
+ return this.q = q;
+ }
+ ,test: function(obj) {
+ var qualify = false;
+ var _g = 0;
+ var _g1 = Reflect.fields(obj);
+ while(_g < _g1.length) {
+ var k = _g1[_g];
+ ++_g;
+ var v = Std.string(Reflect.field(obj,k));
+ if(this.testProperty(k,v)) {
+ qualify = true;
+ }
+ }
+ var _g = 0;
+ var _g1 = Reflect.fields(obj);
+ while(_g < _g1.length) {
+ var k = _g1[_g];
+ ++_g;
+ var v = Std.string(Reflect.field(obj,k));
+ if(this.testProperty(k,v,true)) {
+ qualify = false;
+ }
+ }
+ return qualify;
+ }
+ ,testProperty: function(property,value,exclude) {
+ var conds = 0;
+ var fails = 0;
+ var qualify = 0;
+ var testprop = function(expr) {
+ conds += 1;
+ fails += expr ? 0 : 1;
+ return expr;
+ };
+ if(this.q[value] != null) {
+ var v = this.q[value];
+ if(v[property] != null) {
+ return v[property];
+ }
+ }
+ if(Reflect.field(this.q,"expr")) {
+ var f = Reflect.field(this.q,"expr");
+ if(!Reflect.field(this.q,"show")) {
+ if(Reflect.field(f,"!=") != null && testprop((value == null ? "null" : "" + value) == Std.string(Reflect.field(f,"!="))) && exclude) {
+ ++qualify;
+ }
+ } else {
+ if(Reflect.field(f,"*") != null && testprop(parseFloat(value) != null)) {
+ ++qualify;
+ }
+ if(Reflect.field(f,">") != null && testprop(parseFloat(value) >= parseFloat(Reflect.field(f,">")))) {
+ ++qualify;
+ }
+ if(Reflect.field(f,"<") != null && testprop(parseFloat(value) <= parseFloat(Reflect.field(f,"<")))) {
+ ++qualify;
+ }
+ if(Reflect.field(f,"=") != null && (testprop(value == Reflect.field(f,"=")) || testprop(parseFloat(value) == parseFloat(Reflect.field(f,"="))))) {
+ ++qualify;
+ }
+ }
+ }
+ return qualify > 0;
+ }
+};
+var xrfragment_Parser = $hx_exports["xrfragment"]["Parser"] = function() { };
+xrfragment_Parser.__name__ = true;
+xrfragment_Parser.parse = function(key,value,store,index) {
+ var Frag_h = Object.create(null);
+ Frag_h["#"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_PREDEFINED_VIEW | xrfragment_XRF.PV_EXECUTE;
+ Frag_h["src"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_URL;
+ Frag_h["href"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_URL | xrfragment_XRF.T_PREDEFINED_VIEW;
+ Frag_h["tag"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["pos"] = xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_VECTOR3 | xrfragment_XRF.T_STRING | xrfragment_XRF.T_STRING_OBJ | xrfragment_XRF.METADATA | xrfragment_XRF.NAVIGATOR;
+ Frag_h["rot"] = xrfragment_XRF.QUERY_OPERATOR | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_VECTOR3 | xrfragment_XRF.METADATA | xrfragment_XRF.NAVIGATOR;
+ Frag_h["t"] = xrfragment_XRF.ASSET | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_FLOAT | xrfragment_XRF.T_VECTOR2 | xrfragment_XRF.T_STRING | xrfragment_XRF.NAVIGATOR | xrfragment_XRF.METADATA;
+ Frag_h["tv"] = xrfragment_XRF.ASSET | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_FLOAT | xrfragment_XRF.T_VECTOR2 | xrfragment_XRF.T_VECTOR3 | xrfragment_XRF.NAVIGATOR | xrfragment_XRF.METADATA;
+ Frag_h["namespace"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["SPDX"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["unit"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["description"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["session"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_URL | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.NAVIGATOR | xrfragment_XRF.METADATA | xrfragment_XRF.PROMPT;
+ var keyStripped = key.replace(xrfragment_XRF.operators.r,"");
+ var isPVDynamic = key.length > 0 && !Object.prototype.hasOwnProperty.call(Frag_h,key);
+ var isPVDefault = value.length == 0 && key.length > 0 && key == "#";
+ if(isPVDynamic) {
+ var v = new xrfragment_XRF(key,xrfragment_XRF.PV_EXECUTE | xrfragment_XRF.NAVIGATOR,index);
+ v.validate(value);
+ store[keyStripped] = v;
+ return true;
+ }
+ var v = new xrfragment_XRF(key,Frag_h[key],index);
+ if(Object.prototype.hasOwnProperty.call(Frag_h,key)) {
+ if(!v.validate(value)) {
+ console.log("src/xrfragment/Parser.hx:66:","⚠ fragment '" + key + "' has incompatible value (" + value + ")");
+ return false;
+ }
+ store[keyStripped] = v;
+ if(xrfragment_Parser.debug) {
+ console.log("src/xrfragment/Parser.hx:70:","✔ " + key + ": " + v.string);
+ }
+ } else {
+ if(typeof(value) == "string") {
+ v.guessType(v,value);
+ }
+ v.noXRF = true;
+ store[keyStripped] = v;
+ }
+ return true;
+};
+var xrfragment_URI = $hx_exports["xrfragment"]["URI"] = function() { };
+xrfragment_URI.__name__ = true;
+xrfragment_URI.parse = function(url,filter) {
+ var store = { };
+ if(url == null || url.indexOf("#") == -1) {
+ return store;
+ }
+ var fragment = url.split("#");
+ var splitArray = fragment[1].split("&");
+ var _g = 0;
+ var _g1 = splitArray.length;
+ while(_g < _g1) {
+ var i = _g++;
+ var splitByEqual = splitArray[i].split("=");
+ var regexPlus = new EReg("\\+","g");
+ var key = splitByEqual[0];
+ var value = "";
+ if(splitByEqual.length > 1) {
+ var s = regexPlus.split(splitByEqual[1]).join(" ");
+ value = decodeURIComponent(s.split("+").join(" "));
+ }
+ var ok = xrfragment_Parser.parse(key,value,store,i);
+ }
+ if(filter != null && filter != 0) {
+ var _g = 0;
+ var _g1 = Reflect.fields(store);
+ while(_g < _g1.length) {
+ var key = _g1[_g];
+ ++_g;
+ var xrf = store[key];
+ if(!xrf.is(filter)) {
+ Reflect.deleteField(store,key);
+ }
+ }
+ }
+ return store;
+};
+var xrfragment_XRF = $hx_exports["xrfragment"]["XRF"] = function(_fragment,_flags,_index) {
+ this.fragment = _fragment;
+ this.flags = _flags;
+ this.index = _index;
+};
+xrfragment_XRF.__name__ = true;
+xrfragment_XRF.set = function(flag,flags) {
+ return flags | flag;
+};
+xrfragment_XRF.unset = function(flag,flags) {
+ return flags & ~flag;
+};
+xrfragment_XRF.prototype = {
+ is: function(flag) {
+ var v = this.flags;
+ if(!(typeof(v) == "number" && ((v | 0) === v))) {
+ this.flags = 0;
+ }
+ return (this.flags & flag) != 0;
+ }
+ ,validate: function(value) {
+ this.guessType(this,value);
+ var ok = true;
+ if(!this.is(xrfragment_XRF.T_FLOAT) && this.is(xrfragment_XRF.T_VECTOR2) && !(typeof(this.x) == "number" && typeof(this.y) == "number")) {
+ ok = false;
+ }
+ if(!(this.is(xrfragment_XRF.T_VECTOR2) || this.is(xrfragment_XRF.T_STRING)) && this.is(xrfragment_XRF.T_VECTOR3) && !(typeof(this.x) == "number" && typeof(this.y) == "number" && typeof(this.z) == "number")) {
+ ok = false;
+ }
+ return ok;
+ }
+ ,guessType: function(v,str) {
+ v.string = str;
+ if(typeof(str) != "string") {
+ return;
+ }
+ if(str.length > 0) {
+ if(str.split(",").length > 1) {
+ var xyzw = str.split(",");
+ if(xyzw.length > 0) {
+ v.x = parseFloat(xyzw[0]);
+ }
+ if(xyzw.length > 1) {
+ v.y = parseFloat(xyzw[1]);
+ }
+ if(xyzw.length > 2) {
+ v.z = parseFloat(xyzw[2]);
+ }
+ if(xyzw.length > 3) {
+ v.w = parseFloat(xyzw[3]);
+ }
+ }
+ if(xrfragment_XRF.isColor.match(str)) {
+ v.color = str;
+ }
+ if(xrfragment_XRF.isFloat.match(str)) {
+ v.x = parseFloat(str);
+ v.float = v.x;
+ }
+ if(xrfragment_XRF.isInt.match(str)) {
+ v.int = Std.parseInt(str);
+ v.x = v.int;
+ }
+ v.filter = new xrfragment_Filter(v.fragment + "=" + v.string);
+ } else {
+ v.filter = new xrfragment_Filter(v.fragment);
+ }
+ }
+};
+if(typeof(performance) != "undefined" ? typeof(performance.now) == "function" : false) {
+ HxOverrides.now = performance.now.bind(performance);
+}
+String.__name__ = true;
+Array.__name__ = true;
+js_Boot.__toStr = ({ }).toString;
+xrfragment_Parser.error = "";
+xrfragment_Parser.debug = false;
+xrfragment_XRF.ASSET = 1;
+xrfragment_XRF.PROP_BIND = 2;
+xrfragment_XRF.QUERY_OPERATOR = 4;
+xrfragment_XRF.PROMPT = 8;
+xrfragment_XRF.ROUNDROBIN = 16;
+xrfragment_XRF.NAVIGATOR = 32;
+xrfragment_XRF.METADATA = 64;
+xrfragment_XRF.PV_OVERRIDE = 128;
+xrfragment_XRF.PV_EXECUTE = 256;
+xrfragment_XRF.T_COLOR = 8192;
+xrfragment_XRF.T_INT = 16384;
+xrfragment_XRF.T_FLOAT = 32768;
+xrfragment_XRF.T_VECTOR2 = 65536;
+xrfragment_XRF.T_VECTOR3 = 131072;
+xrfragment_XRF.T_URL = 262144;
+xrfragment_XRF.T_PREDEFINED_VIEW = 524288;
+xrfragment_XRF.T_STRING = 1048576;
+xrfragment_XRF.T_STRING_OBJ = 2097152;
+xrfragment_XRF.T_STRING_OBJ_PROP = 4194304;
+xrfragment_XRF.isColor = new EReg("^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$","");
+xrfragment_XRF.isInt = new EReg("^[-0-9]+$","");
+xrfragment_XRF.isFloat = new EReg("^[-0-9]+\\.[0-9]+$","");
+xrfragment_XRF.isVector = new EReg("([,]+|\\w)","");
+xrfragment_XRF.isUrl = new EReg("(://)?\\..*","");
+xrfragment_XRF.isUrlOrPretypedView = new EReg("(^#|://)?\\..*","");
+xrfragment_XRF.isString = new EReg(".*","");
+xrfragment_XRF.operators = new EReg("(^-|[\\*]+)","");
+xrfragment_XRF.isProp = new EReg("^.*=[><=]?","");
+xrfragment_XRF.isExclude = new EReg("^-","");
+xrfragment_XRF.isDeep = new EReg("\\*","");
+xrfragment_XRF.isNumber = new EReg("^[0-9\\.]+$","");
+})({});
+var xrfragment = $hx_exports["xrfragment"];
+export default xrfragment;
+var $hx_exports = typeof exports != "undefined" ? exports : typeof window != "undefined" ? window : typeof self != "undefined" ? self : this;
+(function ($global) { "use strict";
+$hx_exports["xrfragment"] = $hx_exports["xrfragment"] || {};
+var EReg = function(r,opt) {
+ this.r = new RegExp(r,opt.split("u").join(""));
+};
+EReg.__name__ = true;
+EReg.prototype = {
+ match: function(s) {
+ if(this.r.global) {
+ this.r.lastIndex = 0;
+ }
+ this.r.m = this.r.exec(s);
+ this.r.s = s;
+ return this.r.m != null;
+ }
+ ,split: function(s) {
+ var d = "#__delim__#";
+ return s.replace(this.r,d).split(d);
+ }
+};
+var HxOverrides = function() { };
+HxOverrides.__name__ = true;
+HxOverrides.cca = function(s,index) {
+ var x = s.charCodeAt(index);
+ if(x != x) {
+ return undefined;
+ }
+ return x;
+};
+HxOverrides.substr = function(s,pos,len) {
+ if(len == null) {
+ len = s.length;
+ } else if(len < 0) {
+ if(pos == 0) {
+ len = s.length + len;
+ } else {
+ return "";
+ }
+ }
+ return s.substr(pos,len);
+};
+HxOverrides.now = function() {
+ return Date.now();
+};
+Math.__name__ = true;
+var Reflect = function() { };
+Reflect.__name__ = true;
+Reflect.field = function(o,field) {
+ try {
+ return o[field];
+ } catch( _g ) {
+ return null;
+ }
+};
+Reflect.fields = function(o) {
+ var a = [];
+ if(o != null) {
+ var hasOwnProperty = Object.prototype.hasOwnProperty;
+ for( var f in o ) {
+ if(f != "__id__" && f != "hx__closures__" && hasOwnProperty.call(o,f)) {
+ a.push(f);
+ }
+ }
+ }
+ return a;
+};
+Reflect.deleteField = function(o,field) {
+ if(!Object.prototype.hasOwnProperty.call(o,field)) {
+ return false;
+ }
+ delete(o[field]);
+ return true;
+};
+Reflect.copy = function(o) {
+ if(o == null) {
+ return null;
+ }
+ var o2 = { };
+ var _g = 0;
+ var _g1 = Reflect.fields(o);
+ while(_g < _g1.length) {
+ var f = _g1[_g];
+ ++_g;
+ o2[f] = Reflect.field(o,f);
+ }
+ return o2;
+};
+var Std = function() { };
+Std.__name__ = true;
+Std.string = function(s) {
+ return js_Boot.__string_rec(s,"");
+};
+Std.parseInt = function(x) {
+ if(x != null) {
+ var _g = 0;
+ var _g1 = x.length;
+ while(_g < _g1) {
+ var i = _g++;
+ var c = x.charCodeAt(i);
+ if(c <= 8 || c >= 14 && c != 32 && c != 45) {
+ var nc = x.charCodeAt(i + 1);
+ var v = parseInt(x,nc == 120 || nc == 88 ? 16 : 10);
+ if(isNaN(v)) {
+ return null;
+ } else {
+ return v;
+ }
+ }
+ }
+ }
+ return null;
+};
+var StringTools = function() { };
+StringTools.__name__ = true;
+StringTools.isSpace = function(s,pos) {
+ var c = HxOverrides.cca(s,pos);
+ if(!(c > 8 && c < 14)) {
+ return c == 32;
+ } else {
+ return true;
+ }
+};
+StringTools.ltrim = function(s) {
+ var l = s.length;
+ var r = 0;
+ while(r < l && StringTools.isSpace(s,r)) ++r;
+ if(r > 0) {
+ return HxOverrides.substr(s,r,l - r);
+ } else {
+ return s;
+ }
+};
+StringTools.rtrim = function(s) {
+ var l = s.length;
+ var r = 0;
+ while(r < l && StringTools.isSpace(s,l - r - 1)) ++r;
+ if(r > 0) {
+ return HxOverrides.substr(s,0,l - r);
+ } else {
+ return s;
+ }
+};
+StringTools.trim = function(s) {
+ return StringTools.ltrim(StringTools.rtrim(s));
+};
+var haxe_iterators_ArrayIterator = function(array) {
+ this.current = 0;
+ this.array = array;
+};
+haxe_iterators_ArrayIterator.__name__ = true;
+haxe_iterators_ArrayIterator.prototype = {
+ hasNext: function() {
+ return this.current < this.array.length;
+ }
+ ,next: function() {
+ return this.array[this.current++];
+ }
+};
+var js_Boot = function() { };
+js_Boot.__name__ = true;
+js_Boot.__string_rec = function(o,s) {
+ if(o == null) {
+ return "null";
+ }
+ if(s.length >= 5) {
+ return "<...>";
+ }
+ var t = typeof(o);
+ if(t == "function" && (o.__name__ || o.__ename__)) {
+ t = "object";
+ }
+ switch(t) {
+ case "function":
+ return "";
+ case "object":
+ if(((o) instanceof Array)) {
+ var str = "[";
+ s += "\t";
+ var _g = 0;
+ var _g1 = o.length;
+ while(_g < _g1) {
+ var i = _g++;
+ str += (i > 0 ? "," : "") + js_Boot.__string_rec(o[i],s);
+ }
+ str += "]";
+ return str;
+ }
+ var tostr;
+ try {
+ tostr = o.toString;
+ } catch( _g ) {
+ return "???";
+ }
+ if(tostr != null && tostr != Object.toString && typeof(tostr) == "function") {
+ var s2 = o.toString();
+ if(s2 != "[object Object]") {
+ return s2;
+ }
+ }
+ var str = "{\n";
+ s += "\t";
+ var hasp = o.hasOwnProperty != null;
+ var k = null;
+ for( k in o ) {
+ if(hasp && !o.hasOwnProperty(k)) {
+ continue;
+ }
+ if(k == "prototype" || k == "__class__" || k == "__super__" || k == "__interfaces__" || k == "__properties__") {
+ continue;
+ }
+ if(str.length != 2) {
+ str += ", \n";
+ }
+ str += s + k + " : " + js_Boot.__string_rec(o[k],s);
+ }
+ s = s.substring(1);
+ str += "\n" + s + "}";
+ return str;
+ case "string":
+ return o;
+ default:
+ return String(o);
+ }
+};
+var xrfragment_Filter = $hx_exports["xrfragment"]["Filter"] = function(str) {
+ this.q = { };
+ this.str = "";
+ if(str != null) {
+ this.parse(str);
+ }
+};
+xrfragment_Filter.__name__ = true;
+xrfragment_Filter.prototype = {
+ toObject: function() {
+ return Reflect.copy(this.q);
+ }
+ ,get: function() {
+ return Reflect.copy(this.q);
+ }
+ ,parse: function(str) {
+ var token = str.split(" ");
+ var q = { };
+ var process = function(str,prefix) {
+ if(prefix == null) {
+ prefix = "";
+ }
+ str = StringTools.trim(str);
+ var k = str.split("=")[0];
+ var v = str.split("=")[1];
+ var filter = { };
+ if(q[prefix + k]) {
+ filter = q[prefix + k];
+ }
+ if(xrfragment_XRF.isProp.match(str)) {
+ var oper = "";
+ if(str.indexOf(">") != -1) {
+ oper = ">";
+ }
+ if(str.indexOf("<") != -1) {
+ oper = "<";
+ }
+ if(xrfragment_XRF.isExclude.match(k)) {
+ k = HxOverrides.substr(k,1,null);
+ }
+ v = HxOverrides.substr(v,oper.length,null);
+ if(oper.length == 0) {
+ oper = "=";
+ }
+ var rule = { };
+ if(xrfragment_XRF.isNumber.match(v)) {
+ rule[oper] = parseFloat(v);
+ } else {
+ rule[oper] = v;
+ }
+ q["expr"] = rule;
+ }
+ var value = xrfragment_XRF.isDeep.match(str) ? k.split("*").length - 1 : 0;
+ q["deep"] = value;
+ var value = xrfragment_XRF.isExclude.match(str) ? false : true;
+ q["show"] = value;
+ var value = k.replace(xrfragment_XRF.operators.r,"");
+ q["key"] = value;
+ q["value"] = v;
+ };
+ var _g = 0;
+ var _g1 = token.length;
+ while(_g < _g1) {
+ var i = _g++;
+ process(token[i]);
+ }
+ return this.q = q;
+ }
+ ,test: function(obj) {
+ var qualify = false;
+ var _g = 0;
+ var _g1 = Reflect.fields(obj);
+ while(_g < _g1.length) {
+ var k = _g1[_g];
+ ++_g;
+ var v = Std.string(Reflect.field(obj,k));
+ if(this.testProperty(k,v)) {
+ qualify = true;
+ }
+ }
+ var _g = 0;
+ var _g1 = Reflect.fields(obj);
+ while(_g < _g1.length) {
+ var k = _g1[_g];
+ ++_g;
+ var v = Std.string(Reflect.field(obj,k));
+ if(this.testProperty(k,v,true)) {
+ qualify = false;
+ }
+ }
+ return qualify;
+ }
+ ,testProperty: function(property,value,exclude) {
+ var conds = 0;
+ var fails = 0;
+ var qualify = 0;
+ var testprop = function(expr) {
+ conds += 1;
+ fails += expr ? 0 : 1;
+ return expr;
+ };
+ if(this.q[value] != null) {
+ var v = this.q[value];
+ if(v[property] != null) {
+ return v[property];
+ }
+ }
+ if(Reflect.field(this.q,"expr")) {
+ var f = Reflect.field(this.q,"expr");
+ if(!Reflect.field(this.q,"show")) {
+ if(Reflect.field(f,"!=") != null && testprop((value == null ? "null" : "" + value) == Std.string(Reflect.field(f,"!="))) && exclude) {
+ ++qualify;
+ }
+ } else {
+ if(Reflect.field(f,"*") != null && testprop(parseFloat(value) != null)) {
+ ++qualify;
+ }
+ if(Reflect.field(f,">") != null && testprop(parseFloat(value) >= parseFloat(Reflect.field(f,">")))) {
+ ++qualify;
+ }
+ if(Reflect.field(f,"<") != null && testprop(parseFloat(value) <= parseFloat(Reflect.field(f,"<")))) {
+ ++qualify;
+ }
+ if(Reflect.field(f,"=") != null && (testprop(value == Reflect.field(f,"=")) || testprop(parseFloat(value) == parseFloat(Reflect.field(f,"="))))) {
+ ++qualify;
+ }
+ }
+ }
+ return qualify > 0;
+ }
+};
+var xrfragment_Parser = $hx_exports["xrfragment"]["Parser"] = function() { };
+xrfragment_Parser.__name__ = true;
+xrfragment_Parser.parse = function(key,value,store,index) {
+ var Frag_h = Object.create(null);
+ Frag_h["#"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_PREDEFINED_VIEW | xrfragment_XRF.PV_EXECUTE;
+ Frag_h["src"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_URL;
+ Frag_h["href"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_URL | xrfragment_XRF.T_PREDEFINED_VIEW;
+ Frag_h["tag"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["pos"] = xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_VECTOR3 | xrfragment_XRF.T_STRING | xrfragment_XRF.T_STRING_OBJ | xrfragment_XRF.METADATA | xrfragment_XRF.NAVIGATOR;
+ Frag_h["rot"] = xrfragment_XRF.QUERY_OPERATOR | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_VECTOR3 | xrfragment_XRF.METADATA | xrfragment_XRF.NAVIGATOR;
+ Frag_h["t"] = xrfragment_XRF.ASSET | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_FLOAT | xrfragment_XRF.T_VECTOR2 | xrfragment_XRF.T_STRING | xrfragment_XRF.NAVIGATOR | xrfragment_XRF.METADATA;
+ Frag_h["tv"] = xrfragment_XRF.ASSET | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_FLOAT | xrfragment_XRF.T_VECTOR2 | xrfragment_XRF.T_VECTOR3 | xrfragment_XRF.NAVIGATOR | xrfragment_XRF.METADATA;
+ Frag_h["namespace"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["SPDX"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["unit"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["description"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["session"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_URL | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.NAVIGATOR | xrfragment_XRF.METADATA | xrfragment_XRF.PROMPT;
+ var keyStripped = key.replace(xrfragment_XRF.operators.r,"");
+ var isPVDynamic = key.length > 0 && !Object.prototype.hasOwnProperty.call(Frag_h,key);
+ var isPVDefault = value.length == 0 && key.length > 0 && key == "#";
+ if(isPVDynamic) {
+ var v = new xrfragment_XRF(key,xrfragment_XRF.PV_EXECUTE | xrfragment_XRF.NAVIGATOR,index);
+ v.validate(value);
+ store[keyStripped] = v;
+ return true;
+ }
+ var v = new xrfragment_XRF(key,Frag_h[key],index);
+ if(Object.prototype.hasOwnProperty.call(Frag_h,key)) {
+ if(!v.validate(value)) {
+ console.log("src/xrfragment/Parser.hx:66:","⚠ fragment '" + key + "' has incompatible value (" + value + ")");
+ return false;
+ }
+ store[keyStripped] = v;
+ if(xrfragment_Parser.debug) {
+ console.log("src/xrfragment/Parser.hx:70:","✔ " + key + ": " + v.string);
+ }
+ } else {
+ if(typeof(value) == "string") {
+ v.guessType(v,value);
+ }
+ v.noXRF = true;
+ store[keyStripped] = v;
+ }
+ return true;
+};
+var xrfragment_URI = $hx_exports["xrfragment"]["URI"] = function() { };
+xrfragment_URI.__name__ = true;
+xrfragment_URI.parse = function(url,filter) {
+ var store = { };
+ if(url == null || url.indexOf("#") == -1) {
+ return store;
+ }
+ var fragment = url.split("#");
+ var splitArray = fragment[1].split("&");
+ var _g = 0;
+ var _g1 = splitArray.length;
+ while(_g < _g1) {
+ var i = _g++;
+ var splitByEqual = splitArray[i].split("=");
+ var regexPlus = new EReg("\\+","g");
+ var key = splitByEqual[0];
+ var value = "";
+ if(splitByEqual.length > 1) {
+ var s = regexPlus.split(splitByEqual[1]).join(" ");
+ value = decodeURIComponent(s.split("+").join(" "));
+ }
+ var ok = xrfragment_Parser.parse(key,value,store,i);
+ }
+ if(filter != null && filter != 0) {
+ var _g = 0;
+ var _g1 = Reflect.fields(store);
+ while(_g < _g1.length) {
+ var key = _g1[_g];
+ ++_g;
+ var xrf = store[key];
+ if(!xrf.is(filter)) {
+ Reflect.deleteField(store,key);
+ }
+ }
+ }
+ return store;
+};
+var xrfragment_XRF = $hx_exports["xrfragment"]["XRF"] = function(_fragment,_flags,_index) {
+ this.fragment = _fragment;
+ this.flags = _flags;
+ this.index = _index;
+};
+xrfragment_XRF.__name__ = true;
+xrfragment_XRF.set = function(flag,flags) {
+ return flags | flag;
+};
+xrfragment_XRF.unset = function(flag,flags) {
+ return flags & ~flag;
+};
+xrfragment_XRF.prototype = {
+ is: function(flag) {
+ var v = this.flags;
+ if(!(typeof(v) == "number" && ((v | 0) === v))) {
+ this.flags = 0;
+ }
+ return (this.flags & flag) != 0;
+ }
+ ,validate: function(value) {
+ this.guessType(this,value);
+ var ok = true;
+ if(!this.is(xrfragment_XRF.T_FLOAT) && this.is(xrfragment_XRF.T_VECTOR2) && !(typeof(this.x) == "number" && typeof(this.y) == "number")) {
+ ok = false;
+ }
+ if(!(this.is(xrfragment_XRF.T_VECTOR2) || this.is(xrfragment_XRF.T_STRING)) && this.is(xrfragment_XRF.T_VECTOR3) && !(typeof(this.x) == "number" && typeof(this.y) == "number" && typeof(this.z) == "number")) {
+ ok = false;
+ }
+ return ok;
+ }
+ ,guessType: function(v,str) {
+ v.string = str;
+ if(typeof(str) != "string") {
+ return;
+ }
+ if(str.length > 0) {
+ if(str.split(",").length > 1) {
+ var xyzw = str.split(",");
+ if(xyzw.length > 0) {
+ v.x = parseFloat(xyzw[0]);
+ }
+ if(xyzw.length > 1) {
+ v.y = parseFloat(xyzw[1]);
+ }
+ if(xyzw.length > 2) {
+ v.z = parseFloat(xyzw[2]);
+ }
+ if(xyzw.length > 3) {
+ v.w = parseFloat(xyzw[3]);
+ }
+ }
+ if(xrfragment_XRF.isColor.match(str)) {
+ v.color = str;
+ }
+ if(xrfragment_XRF.isFloat.match(str)) {
+ v.x = parseFloat(str);
+ v.float = v.x;
+ }
+ if(xrfragment_XRF.isInt.match(str)) {
+ v.int = Std.parseInt(str);
+ v.x = v.int;
+ }
+ v.filter = new xrfragment_Filter(v.fragment + "=" + v.string);
+ } else {
+ v.filter = new xrfragment_Filter(v.fragment);
+ }
+ }
+};
+if(typeof(performance) != "undefined" ? typeof(performance.now) == "function" : false) {
+ HxOverrides.now = performance.now.bind(performance);
+}
+String.__name__ = true;
+Array.__name__ = true;
+js_Boot.__toStr = ({ }).toString;
+xrfragment_Parser.error = "";
+xrfragment_Parser.debug = false;
+xrfragment_XRF.ASSET = 1;
+xrfragment_XRF.PROP_BIND = 2;
+xrfragment_XRF.QUERY_OPERATOR = 4;
+xrfragment_XRF.PROMPT = 8;
+xrfragment_XRF.ROUNDROBIN = 16;
+xrfragment_XRF.NAVIGATOR = 32;
+xrfragment_XRF.METADATA = 64;
+xrfragment_XRF.PV_OVERRIDE = 128;
+xrfragment_XRF.PV_EXECUTE = 256;
+xrfragment_XRF.T_COLOR = 8192;
+xrfragment_XRF.T_INT = 16384;
+xrfragment_XRF.T_FLOAT = 32768;
+xrfragment_XRF.T_VECTOR2 = 65536;
+xrfragment_XRF.T_VECTOR3 = 131072;
+xrfragment_XRF.T_URL = 262144;
+xrfragment_XRF.T_PREDEFINED_VIEW = 524288;
+xrfragment_XRF.T_STRING = 1048576;
+xrfragment_XRF.T_STRING_OBJ = 2097152;
+xrfragment_XRF.T_STRING_OBJ_PROP = 4194304;
+xrfragment_XRF.isColor = new EReg("^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$","");
+xrfragment_XRF.isInt = new EReg("^[-0-9]+$","");
+xrfragment_XRF.isFloat = new EReg("^[-0-9]+\\.[0-9]+$","");
+xrfragment_XRF.isVector = new EReg("([,]+|\\w)","");
+xrfragment_XRF.isUrl = new EReg("(://)?\\..*","");
+xrfragment_XRF.isUrlOrPretypedView = new EReg("(^#|://)?\\..*","");
+xrfragment_XRF.isString = new EReg(".*","");
+xrfragment_XRF.operators = new EReg("(^-|[\\*]+)","");
+xrfragment_XRF.isProp = new EReg("^.*=[><=]?","");
+xrfragment_XRF.isExclude = new EReg("^-","");
+xrfragment_XRF.isDeep = new EReg("\\*","");
+xrfragment_XRF.isNumber = new EReg("^[0-9\\.]+$","");
+})({});
+var xrfragment = $hx_exports["xrfragment"];
+export default xrfragment;
+var $hx_exports = typeof exports != "undefined" ? exports : typeof window != "undefined" ? window : typeof self != "undefined" ? self : this;
+(function ($global) { "use strict";
+$hx_exports["xrfragment"] = $hx_exports["xrfragment"] || {};
+var EReg = function(r,opt) {
+ this.r = new RegExp(r,opt.split("u").join(""));
+};
+EReg.__name__ = true;
+EReg.prototype = {
+ match: function(s) {
+ if(this.r.global) {
+ this.r.lastIndex = 0;
+ }
+ this.r.m = this.r.exec(s);
+ this.r.s = s;
+ return this.r.m != null;
+ }
+ ,split: function(s) {
+ var d = "#__delim__#";
+ return s.replace(this.r,d).split(d);
+ }
+};
+var HxOverrides = function() { };
+HxOverrides.__name__ = true;
+HxOverrides.cca = function(s,index) {
+ var x = s.charCodeAt(index);
+ if(x != x) {
+ return undefined;
+ }
+ return x;
+};
+HxOverrides.substr = function(s,pos,len) {
+ if(len == null) {
+ len = s.length;
+ } else if(len < 0) {
+ if(pos == 0) {
+ len = s.length + len;
+ } else {
+ return "";
+ }
+ }
+ return s.substr(pos,len);
+};
+HxOverrides.now = function() {
+ return Date.now();
+};
+Math.__name__ = true;
+var Reflect = function() { };
+Reflect.__name__ = true;
+Reflect.field = function(o,field) {
+ try {
+ return o[field];
+ } catch( _g ) {
+ return null;
+ }
+};
+Reflect.fields = function(o) {
+ var a = [];
+ if(o != null) {
+ var hasOwnProperty = Object.prototype.hasOwnProperty;
+ for( var f in o ) {
+ if(f != "__id__" && f != "hx__closures__" && hasOwnProperty.call(o,f)) {
+ a.push(f);
+ }
+ }
+ }
+ return a;
+};
+Reflect.deleteField = function(o,field) {
+ if(!Object.prototype.hasOwnProperty.call(o,field)) {
+ return false;
+ }
+ delete(o[field]);
+ return true;
+};
+Reflect.copy = function(o) {
+ if(o == null) {
+ return null;
+ }
+ var o2 = { };
+ var _g = 0;
+ var _g1 = Reflect.fields(o);
+ while(_g < _g1.length) {
+ var f = _g1[_g];
+ ++_g;
+ o2[f] = Reflect.field(o,f);
+ }
+ return o2;
+};
+var Std = function() { };
+Std.__name__ = true;
+Std.string = function(s) {
+ return js_Boot.__string_rec(s,"");
+};
+Std.parseInt = function(x) {
+ if(x != null) {
+ var _g = 0;
+ var _g1 = x.length;
+ while(_g < _g1) {
+ var i = _g++;
+ var c = x.charCodeAt(i);
+ if(c <= 8 || c >= 14 && c != 32 && c != 45) {
+ var nc = x.charCodeAt(i + 1);
+ var v = parseInt(x,nc == 120 || nc == 88 ? 16 : 10);
+ if(isNaN(v)) {
+ return null;
+ } else {
+ return v;
+ }
+ }
+ }
+ }
+ return null;
+};
+var StringTools = function() { };
+StringTools.__name__ = true;
+StringTools.isSpace = function(s,pos) {
+ var c = HxOverrides.cca(s,pos);
+ if(!(c > 8 && c < 14)) {
+ return c == 32;
+ } else {
+ return true;
+ }
+};
+StringTools.ltrim = function(s) {
+ var l = s.length;
+ var r = 0;
+ while(r < l && StringTools.isSpace(s,r)) ++r;
+ if(r > 0) {
+ return HxOverrides.substr(s,r,l - r);
+ } else {
+ return s;
+ }
+};
+StringTools.rtrim = function(s) {
+ var l = s.length;
+ var r = 0;
+ while(r < l && StringTools.isSpace(s,l - r - 1)) ++r;
+ if(r > 0) {
+ return HxOverrides.substr(s,0,l - r);
+ } else {
+ return s;
+ }
+};
+StringTools.trim = function(s) {
+ return StringTools.ltrim(StringTools.rtrim(s));
+};
+var haxe_iterators_ArrayIterator = function(array) {
+ this.current = 0;
+ this.array = array;
+};
+haxe_iterators_ArrayIterator.__name__ = true;
+haxe_iterators_ArrayIterator.prototype = {
+ hasNext: function() {
+ return this.current < this.array.length;
+ }
+ ,next: function() {
+ return this.array[this.current++];
+ }
+};
+var js_Boot = function() { };
+js_Boot.__name__ = true;
+js_Boot.__string_rec = function(o,s) {
+ if(o == null) {
+ return "null";
+ }
+ if(s.length >= 5) {
+ return "<...>";
+ }
+ var t = typeof(o);
+ if(t == "function" && (o.__name__ || o.__ename__)) {
+ t = "object";
+ }
+ switch(t) {
+ case "function":
+ return "";
+ case "object":
+ if(((o) instanceof Array)) {
+ var str = "[";
+ s += "\t";
+ var _g = 0;
+ var _g1 = o.length;
+ while(_g < _g1) {
+ var i = _g++;
+ str += (i > 0 ? "," : "") + js_Boot.__string_rec(o[i],s);
+ }
+ str += "]";
+ return str;
+ }
+ var tostr;
+ try {
+ tostr = o.toString;
+ } catch( _g ) {
+ return "???";
+ }
+ if(tostr != null && tostr != Object.toString && typeof(tostr) == "function") {
+ var s2 = o.toString();
+ if(s2 != "[object Object]") {
+ return s2;
+ }
+ }
+ var str = "{\n";
+ s += "\t";
+ var hasp = o.hasOwnProperty != null;
+ var k = null;
+ for( k in o ) {
+ if(hasp && !o.hasOwnProperty(k)) {
+ continue;
+ }
+ if(k == "prototype" || k == "__class__" || k == "__super__" || k == "__interfaces__" || k == "__properties__") {
+ continue;
+ }
+ if(str.length != 2) {
+ str += ", \n";
+ }
+ str += s + k + " : " + js_Boot.__string_rec(o[k],s);
+ }
+ s = s.substring(1);
+ str += "\n" + s + "}";
+ return str;
+ case "string":
+ return o;
+ default:
+ return String(o);
+ }
+};
+var xrfragment_Filter = $hx_exports["xrfragment"]["Filter"] = function(str) {
+ this.q = { };
+ this.str = "";
+ if(str != null) {
+ this.parse(str);
+ }
+};
+xrfragment_Filter.__name__ = true;
+xrfragment_Filter.prototype = {
+ toObject: function() {
+ return Reflect.copy(this.q);
+ }
+ ,get: function() {
+ return Reflect.copy(this.q);
+ }
+ ,parse: function(str) {
+ var token = str.split(" ");
+ var q = { };
+ var process = function(str,prefix) {
+ if(prefix == null) {
+ prefix = "";
+ }
+ str = StringTools.trim(str);
+ var k = str.split("=")[0];
+ var v = str.split("=")[1];
+ var filter = { };
+ if(q[prefix + k]) {
+ filter = q[prefix + k];
+ }
+ if(xrfragment_XRF.isProp.match(str)) {
+ var oper = "";
+ if(str.indexOf(">") != -1) {
+ oper = ">";
+ }
+ if(str.indexOf("<") != -1) {
+ oper = "<";
+ }
+ if(xrfragment_XRF.isExclude.match(k)) {
+ k = HxOverrides.substr(k,1,null);
+ }
+ v = HxOverrides.substr(v,oper.length,null);
+ if(oper.length == 0) {
+ oper = "=";
+ }
+ var rule = { };
+ if(xrfragment_XRF.isNumber.match(v)) {
+ rule[oper] = parseFloat(v);
+ } else {
+ rule[oper] = v;
+ }
+ q["expr"] = rule;
+ }
+ var value = xrfragment_XRF.isDeep.match(str) ? k.split("*").length - 1 : 0;
+ q["deep"] = value;
+ var value = xrfragment_XRF.isExclude.match(str) ? false : true;
+ q["show"] = value;
+ var value = k.replace(xrfragment_XRF.operators.r,"");
+ q["key"] = value;
+ q["value"] = v;
+ };
+ var _g = 0;
+ var _g1 = token.length;
+ while(_g < _g1) {
+ var i = _g++;
+ process(token[i]);
+ }
+ return this.q = q;
+ }
+ ,test: function(obj) {
+ var qualify = false;
+ var _g = 0;
+ var _g1 = Reflect.fields(obj);
+ while(_g < _g1.length) {
+ var k = _g1[_g];
+ ++_g;
+ var v = Std.string(Reflect.field(obj,k));
+ if(this.testProperty(k,v)) {
+ qualify = true;
+ }
+ }
+ var _g = 0;
+ var _g1 = Reflect.fields(obj);
+ while(_g < _g1.length) {
+ var k = _g1[_g];
+ ++_g;
+ var v = Std.string(Reflect.field(obj,k));
+ if(this.testProperty(k,v,true)) {
+ qualify = false;
+ }
+ }
+ return qualify;
+ }
+ ,testProperty: function(property,value,exclude) {
+ var conds = 0;
+ var fails = 0;
+ var qualify = 0;
+ var testprop = function(expr) {
+ conds += 1;
+ fails += expr ? 0 : 1;
+ return expr;
+ };
+ if(this.q[value] != null) {
+ var v = this.q[value];
+ if(v[property] != null) {
+ return v[property];
+ }
+ }
+ if(Reflect.field(this.q,"expr")) {
+ var f = Reflect.field(this.q,"expr");
+ if(!Reflect.field(this.q,"show")) {
+ if(Reflect.field(f,"!=") != null && testprop((value == null ? "null" : "" + value) == Std.string(Reflect.field(f,"!="))) && exclude) {
+ ++qualify;
+ }
+ } else {
+ if(Reflect.field(f,"*") != null && testprop(parseFloat(value) != null)) {
+ ++qualify;
+ }
+ if(Reflect.field(f,">") != null && testprop(parseFloat(value) >= parseFloat(Reflect.field(f,">")))) {
+ ++qualify;
+ }
+ if(Reflect.field(f,"<") != null && testprop(parseFloat(value) <= parseFloat(Reflect.field(f,"<")))) {
+ ++qualify;
+ }
+ if(Reflect.field(f,"=") != null && (testprop(value == Reflect.field(f,"=")) || testprop(parseFloat(value) == parseFloat(Reflect.field(f,"="))))) {
+ ++qualify;
+ }
+ }
+ }
+ return qualify > 0;
+ }
+};
+var xrfragment_Parser = $hx_exports["xrfragment"]["Parser"] = function() { };
+xrfragment_Parser.__name__ = true;
+xrfragment_Parser.parse = function(key,value,store,index) {
+ var Frag_h = Object.create(null);
+ Frag_h["#"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_PREDEFINED_VIEW | xrfragment_XRF.PV_EXECUTE;
+ Frag_h["src"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_URL;
+ Frag_h["href"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_URL | xrfragment_XRF.T_PREDEFINED_VIEW;
+ Frag_h["tag"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["pos"] = xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_VECTOR3 | xrfragment_XRF.T_STRING | xrfragment_XRF.T_STRING_OBJ | xrfragment_XRF.METADATA | xrfragment_XRF.NAVIGATOR;
+ Frag_h["rot"] = xrfragment_XRF.QUERY_OPERATOR | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_VECTOR3 | xrfragment_XRF.METADATA | xrfragment_XRF.NAVIGATOR;
+ Frag_h["t"] = xrfragment_XRF.ASSET | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_FLOAT | xrfragment_XRF.T_VECTOR2 | xrfragment_XRF.T_STRING | xrfragment_XRF.NAVIGATOR | xrfragment_XRF.METADATA;
+ Frag_h["tv"] = xrfragment_XRF.ASSET | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_FLOAT | xrfragment_XRF.T_VECTOR2 | xrfragment_XRF.T_VECTOR3 | xrfragment_XRF.NAVIGATOR | xrfragment_XRF.METADATA;
+ Frag_h["namespace"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["SPDX"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["unit"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["description"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["session"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_URL | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.NAVIGATOR | xrfragment_XRF.METADATA | xrfragment_XRF.PROMPT;
+ var keyStripped = key.replace(xrfragment_XRF.operators.r,"");
+ var isPVDynamic = key.length > 0 && !Object.prototype.hasOwnProperty.call(Frag_h,key);
+ var isPVDefault = value.length == 0 && key.length > 0 && key == "#";
+ if(isPVDynamic) {
+ var v = new xrfragment_XRF(key,xrfragment_XRF.PV_EXECUTE | xrfragment_XRF.NAVIGATOR,index);
+ v.validate(value);
+ store[keyStripped] = v;
+ return true;
+ }
+ var v = new xrfragment_XRF(key,Frag_h[key],index);
+ if(Object.prototype.hasOwnProperty.call(Frag_h,key)) {
+ if(!v.validate(value)) {
+ console.log("src/xrfragment/Parser.hx:66:","⚠ fragment '" + key + "' has incompatible value (" + value + ")");
+ return false;
+ }
+ store[keyStripped] = v;
+ if(xrfragment_Parser.debug) {
+ console.log("src/xrfragment/Parser.hx:70:","✔ " + key + ": " + v.string);
+ }
+ } else {
+ if(typeof(value) == "string") {
+ v.guessType(v,value);
+ }
+ v.noXRF = true;
+ store[keyStripped] = v;
+ }
+ return true;
+};
+var xrfragment_URI = $hx_exports["xrfragment"]["URI"] = function() { };
+xrfragment_URI.__name__ = true;
+xrfragment_URI.parse = function(url,filter) {
+ var store = { };
+ if(url == null || url.indexOf("#") == -1) {
+ return store;
+ }
+ var fragment = url.split("#");
+ var splitArray = fragment[1].split("&");
+ var _g = 0;
+ var _g1 = splitArray.length;
+ while(_g < _g1) {
+ var i = _g++;
+ var splitByEqual = splitArray[i].split("=");
+ var regexPlus = new EReg("\\+","g");
+ var key = splitByEqual[0];
+ var value = "";
+ if(splitByEqual.length > 1) {
+ var s = regexPlus.split(splitByEqual[1]).join(" ");
+ value = decodeURIComponent(s.split("+").join(" "));
+ }
+ var ok = xrfragment_Parser.parse(key,value,store,i);
+ }
+ if(filter != null && filter != 0) {
+ var _g = 0;
+ var _g1 = Reflect.fields(store);
+ while(_g < _g1.length) {
+ var key = _g1[_g];
+ ++_g;
+ var xrf = store[key];
+ if(!xrf.is(filter)) {
+ Reflect.deleteField(store,key);
+ }
+ }
+ }
+ return store;
+};
+var xrfragment_XRF = $hx_exports["xrfragment"]["XRF"] = function(_fragment,_flags,_index) {
+ this.fragment = _fragment;
+ this.flags = _flags;
+ this.index = _index;
+};
+xrfragment_XRF.__name__ = true;
+xrfragment_XRF.set = function(flag,flags) {
+ return flags | flag;
+};
+xrfragment_XRF.unset = function(flag,flags) {
+ return flags & ~flag;
+};
+xrfragment_XRF.prototype = {
+ is: function(flag) {
+ var v = this.flags;
+ if(!(typeof(v) == "number" && ((v | 0) === v))) {
+ this.flags = 0;
+ }
+ return (this.flags & flag) != 0;
+ }
+ ,validate: function(value) {
+ this.guessType(this,value);
+ var ok = true;
+ if(!this.is(xrfragment_XRF.T_FLOAT) && this.is(xrfragment_XRF.T_VECTOR2) && !(typeof(this.x) == "number" && typeof(this.y) == "number")) {
+ ok = false;
+ }
+ if(!(this.is(xrfragment_XRF.T_VECTOR2) || this.is(xrfragment_XRF.T_STRING)) && this.is(xrfragment_XRF.T_VECTOR3) && !(typeof(this.x) == "number" && typeof(this.y) == "number" && typeof(this.z) == "number")) {
+ ok = false;
+ }
+ return ok;
+ }
+ ,guessType: function(v,str) {
+ v.string = str;
+ if(typeof(str) != "string") {
+ return;
+ }
+ if(str.length > 0) {
+ if(str.split(",").length > 1) {
+ var xyzw = str.split(",");
+ if(xyzw.length > 0) {
+ v.x = parseFloat(xyzw[0]);
+ }
+ if(xyzw.length > 1) {
+ v.y = parseFloat(xyzw[1]);
+ }
+ if(xyzw.length > 2) {
+ v.z = parseFloat(xyzw[2]);
+ }
+ if(xyzw.length > 3) {
+ v.w = parseFloat(xyzw[3]);
+ }
+ }
+ if(xrfragment_XRF.isColor.match(str)) {
+ v.color = str;
+ }
+ if(xrfragment_XRF.isFloat.match(str)) {
+ v.x = parseFloat(str);
+ v.float = v.x;
+ }
+ if(xrfragment_XRF.isInt.match(str)) {
+ v.int = Std.parseInt(str);
+ v.x = v.int;
+ }
+ v.filter = new xrfragment_Filter(v.fragment + "=" + v.string);
+ } else {
+ v.filter = new xrfragment_Filter(v.fragment);
+ }
+ }
+};
+if(typeof(performance) != "undefined" ? typeof(performance.now) == "function" : false) {
+ HxOverrides.now = performance.now.bind(performance);
+}
+String.__name__ = true;
+Array.__name__ = true;
+js_Boot.__toStr = ({ }).toString;
+xrfragment_Parser.error = "";
+xrfragment_Parser.debug = false;
+xrfragment_XRF.ASSET = 1;
+xrfragment_XRF.PROP_BIND = 2;
+xrfragment_XRF.QUERY_OPERATOR = 4;
+xrfragment_XRF.PROMPT = 8;
+xrfragment_XRF.ROUNDROBIN = 16;
+xrfragment_XRF.NAVIGATOR = 32;
+xrfragment_XRF.METADATA = 64;
+xrfragment_XRF.PV_OVERRIDE = 128;
+xrfragment_XRF.PV_EXECUTE = 256;
+xrfragment_XRF.T_COLOR = 8192;
+xrfragment_XRF.T_INT = 16384;
+xrfragment_XRF.T_FLOAT = 32768;
+xrfragment_XRF.T_VECTOR2 = 65536;
+xrfragment_XRF.T_VECTOR3 = 131072;
+xrfragment_XRF.T_URL = 262144;
+xrfragment_XRF.T_PREDEFINED_VIEW = 524288;
+xrfragment_XRF.T_STRING = 1048576;
+xrfragment_XRF.T_STRING_OBJ = 2097152;
+xrfragment_XRF.T_STRING_OBJ_PROP = 4194304;
+xrfragment_XRF.isColor = new EReg("^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$","");
+xrfragment_XRF.isInt = new EReg("^[-0-9]+$","");
+xrfragment_XRF.isFloat = new EReg("^[-0-9]+\\.[0-9]+$","");
+xrfragment_XRF.isVector = new EReg("([,]+|\\w)","");
+xrfragment_XRF.isUrl = new EReg("(://)?\\..*","");
+xrfragment_XRF.isUrlOrPretypedView = new EReg("(^#|://)?\\..*","");
+xrfragment_XRF.isString = new EReg(".*","");
+xrfragment_XRF.operators = new EReg("(^-|[\\*]+)","");
+xrfragment_XRF.isProp = new EReg("^.*=[><=]?","");
+xrfragment_XRF.isExclude = new EReg("^-","");
+xrfragment_XRF.isDeep = new EReg("\\*","");
+xrfragment_XRF.isNumber = new EReg("^[0-9\\.]+$","");
+})({});
+var xrfragment = $hx_exports["xrfragment"];
+export default xrfragment;
+var $hx_exports = typeof exports != "undefined" ? exports : typeof window != "undefined" ? window : typeof self != "undefined" ? self : this;
+(function ($global) { "use strict";
+$hx_exports["xrfragment"] = $hx_exports["xrfragment"] || {};
+var EReg = function(r,opt) {
+ this.r = new RegExp(r,opt.split("u").join(""));
+};
+EReg.__name__ = true;
+EReg.prototype = {
+ match: function(s) {
+ if(this.r.global) {
+ this.r.lastIndex = 0;
+ }
+ this.r.m = this.r.exec(s);
+ this.r.s = s;
+ return this.r.m != null;
+ }
+ ,split: function(s) {
+ var d = "#__delim__#";
+ return s.replace(this.r,d).split(d);
+ }
+};
+var HxOverrides = function() { };
+HxOverrides.__name__ = true;
+HxOverrides.cca = function(s,index) {
+ var x = s.charCodeAt(index);
+ if(x != x) {
+ return undefined;
+ }
+ return x;
+};
+HxOverrides.substr = function(s,pos,len) {
+ if(len == null) {
+ len = s.length;
+ } else if(len < 0) {
+ if(pos == 0) {
+ len = s.length + len;
+ } else {
+ return "";
+ }
+ }
+ return s.substr(pos,len);
+};
+HxOverrides.now = function() {
+ return Date.now();
+};
+Math.__name__ = true;
+var Reflect = function() { };
+Reflect.__name__ = true;
+Reflect.field = function(o,field) {
+ try {
+ return o[field];
+ } catch( _g ) {
+ return null;
+ }
+};
+Reflect.fields = function(o) {
+ var a = [];
+ if(o != null) {
+ var hasOwnProperty = Object.prototype.hasOwnProperty;
+ for( var f in o ) {
+ if(f != "__id__" && f != "hx__closures__" && hasOwnProperty.call(o,f)) {
+ a.push(f);
+ }
+ }
+ }
+ return a;
+};
+Reflect.deleteField = function(o,field) {
+ if(!Object.prototype.hasOwnProperty.call(o,field)) {
+ return false;
+ }
+ delete(o[field]);
+ return true;
+};
+Reflect.copy = function(o) {
+ if(o == null) {
+ return null;
+ }
+ var o2 = { };
+ var _g = 0;
+ var _g1 = Reflect.fields(o);
+ while(_g < _g1.length) {
+ var f = _g1[_g];
+ ++_g;
+ o2[f] = Reflect.field(o,f);
+ }
+ return o2;
+};
+var Std = function() { };
+Std.__name__ = true;
+Std.string = function(s) {
+ return js_Boot.__string_rec(s,"");
+};
+Std.parseInt = function(x) {
+ if(x != null) {
+ var _g = 0;
+ var _g1 = x.length;
+ while(_g < _g1) {
+ var i = _g++;
+ var c = x.charCodeAt(i);
+ if(c <= 8 || c >= 14 && c != 32 && c != 45) {
+ var nc = x.charCodeAt(i + 1);
+ var v = parseInt(x,nc == 120 || nc == 88 ? 16 : 10);
+ if(isNaN(v)) {
+ return null;
+ } else {
+ return v;
+ }
+ }
+ }
+ }
+ return null;
+};
+var StringTools = function() { };
+StringTools.__name__ = true;
+StringTools.isSpace = function(s,pos) {
+ var c = HxOverrides.cca(s,pos);
+ if(!(c > 8 && c < 14)) {
+ return c == 32;
+ } else {
+ return true;
+ }
+};
+StringTools.ltrim = function(s) {
+ var l = s.length;
+ var r = 0;
+ while(r < l && StringTools.isSpace(s,r)) ++r;
+ if(r > 0) {
+ return HxOverrides.substr(s,r,l - r);
+ } else {
+ return s;
+ }
+};
+StringTools.rtrim = function(s) {
+ var l = s.length;
+ var r = 0;
+ while(r < l && StringTools.isSpace(s,l - r - 1)) ++r;
+ if(r > 0) {
+ return HxOverrides.substr(s,0,l - r);
+ } else {
+ return s;
+ }
+};
+StringTools.trim = function(s) {
+ return StringTools.ltrim(StringTools.rtrim(s));
+};
+var haxe_iterators_ArrayIterator = function(array) {
+ this.current = 0;
+ this.array = array;
+};
+haxe_iterators_ArrayIterator.__name__ = true;
+haxe_iterators_ArrayIterator.prototype = {
+ hasNext: function() {
+ return this.current < this.array.length;
+ }
+ ,next: function() {
+ return this.array[this.current++];
+ }
+};
+var js_Boot = function() { };
+js_Boot.__name__ = true;
+js_Boot.__string_rec = function(o,s) {
+ if(o == null) {
+ return "null";
+ }
+ if(s.length >= 5) {
+ return "<...>";
+ }
+ var t = typeof(o);
+ if(t == "function" && (o.__name__ || o.__ename__)) {
+ t = "object";
+ }
+ switch(t) {
+ case "function":
+ return "";
+ case "object":
+ if(((o) instanceof Array)) {
+ var str = "[";
+ s += "\t";
+ var _g = 0;
+ var _g1 = o.length;
+ while(_g < _g1) {
+ var i = _g++;
+ str += (i > 0 ? "," : "") + js_Boot.__string_rec(o[i],s);
+ }
+ str += "]";
+ return str;
+ }
+ var tostr;
+ try {
+ tostr = o.toString;
+ } catch( _g ) {
+ return "???";
+ }
+ if(tostr != null && tostr != Object.toString && typeof(tostr) == "function") {
+ var s2 = o.toString();
+ if(s2 != "[object Object]") {
+ return s2;
+ }
+ }
+ var str = "{\n";
+ s += "\t";
+ var hasp = o.hasOwnProperty != null;
+ var k = null;
+ for( k in o ) {
+ if(hasp && !o.hasOwnProperty(k)) {
+ continue;
+ }
+ if(k == "prototype" || k == "__class__" || k == "__super__" || k == "__interfaces__" || k == "__properties__") {
+ continue;
+ }
+ if(str.length != 2) {
+ str += ", \n";
+ }
+ str += s + k + " : " + js_Boot.__string_rec(o[k],s);
+ }
+ s = s.substring(1);
+ str += "\n" + s + "}";
+ return str;
+ case "string":
+ return o;
+ default:
+ return String(o);
+ }
+};
+var xrfragment_Filter = $hx_exports["xrfragment"]["Filter"] = function(str) {
+ this.q = { };
+ this.str = "";
+ if(str != null) {
+ this.parse(str);
+ }
+};
+xrfragment_Filter.__name__ = true;
+xrfragment_Filter.prototype = {
+ toObject: function() {
+ return Reflect.copy(this.q);
+ }
+ ,get: function() {
+ return Reflect.copy(this.q);
+ }
+ ,parse: function(str) {
+ var token = str.split(" ");
+ var q = { };
+ var process = function(str,prefix) {
+ if(prefix == null) {
+ prefix = "";
+ }
+ str = StringTools.trim(str);
+ var k = str.split("=")[0];
+ var v = str.split("=")[1];
+ var filter = { };
+ if(q[prefix + k]) {
+ filter = q[prefix + k];
+ }
+ if(xrfragment_XRF.isProp.match(str)) {
+ var oper = "";
+ if(str.indexOf(">") != -1) {
+ oper = ">";
+ }
+ if(str.indexOf("<") != -1) {
+ oper = "<";
+ }
+ if(xrfragment_XRF.isExclude.match(k)) {
+ k = HxOverrides.substr(k,1,null);
+ }
+ v = HxOverrides.substr(v,oper.length,null);
+ if(oper.length == 0) {
+ oper = "=";
+ }
+ var rule = { };
+ if(xrfragment_XRF.isNumber.match(v)) {
+ rule[oper] = parseFloat(v);
+ } else {
+ rule[oper] = v;
+ }
+ q["expr"] = rule;
+ }
+ var value = xrfragment_XRF.isDeep.match(str) ? k.split("*").length - 1 : 0;
+ q["deep"] = value;
+ var value = xrfragment_XRF.isExclude.match(str) ? false : true;
+ q["show"] = value;
+ var value = k.replace(xrfragment_XRF.operators.r,"");
+ q["key"] = value;
+ q["value"] = v;
+ };
+ var _g = 0;
+ var _g1 = token.length;
+ while(_g < _g1) {
+ var i = _g++;
+ process(token[i]);
+ }
+ return this.q = q;
+ }
+ ,test: function(obj) {
+ var qualify = false;
+ var _g = 0;
+ var _g1 = Reflect.fields(obj);
+ while(_g < _g1.length) {
+ var k = _g1[_g];
+ ++_g;
+ var v = Std.string(Reflect.field(obj,k));
+ if(this.testProperty(k,v)) {
+ qualify = true;
+ }
+ }
+ var _g = 0;
+ var _g1 = Reflect.fields(obj);
+ while(_g < _g1.length) {
+ var k = _g1[_g];
+ ++_g;
+ var v = Std.string(Reflect.field(obj,k));
+ if(this.testProperty(k,v,true)) {
+ qualify = false;
+ }
+ }
+ return qualify;
+ }
+ ,testProperty: function(property,value,exclude) {
+ var conds = 0;
+ var fails = 0;
+ var qualify = 0;
+ var testprop = function(expr) {
+ conds += 1;
+ fails += expr ? 0 : 1;
+ return expr;
+ };
+ if(this.q[value] != null) {
+ var v = this.q[value];
+ if(v[property] != null) {
+ return v[property];
+ }
+ }
+ if(Reflect.field(this.q,"expr")) {
+ var f = Reflect.field(this.q,"expr");
+ if(!Reflect.field(this.q,"show")) {
+ if(Reflect.field(f,"!=") != null && testprop((value == null ? "null" : "" + value) == Std.string(Reflect.field(f,"!="))) && exclude) {
+ ++qualify;
+ }
+ } else {
+ if(Reflect.field(f,"*") != null && testprop(parseFloat(value) != null)) {
+ ++qualify;
+ }
+ if(Reflect.field(f,">") != null && testprop(parseFloat(value) >= parseFloat(Reflect.field(f,">")))) {
+ ++qualify;
+ }
+ if(Reflect.field(f,"<") != null && testprop(parseFloat(value) <= parseFloat(Reflect.field(f,"<")))) {
+ ++qualify;
+ }
+ if(Reflect.field(f,"=") != null && (testprop(value == Reflect.field(f,"=")) || testprop(parseFloat(value) == parseFloat(Reflect.field(f,"="))))) {
+ ++qualify;
+ }
+ }
+ }
+ return qualify > 0;
+ }
+};
+var xrfragment_Parser = $hx_exports["xrfragment"]["Parser"] = function() { };
+xrfragment_Parser.__name__ = true;
+xrfragment_Parser.parse = function(key,value,store,index) {
+ var Frag_h = Object.create(null);
+ Frag_h["#"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_PREDEFINED_VIEW | xrfragment_XRF.PV_EXECUTE;
+ Frag_h["src"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_URL;
+ Frag_h["href"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_URL | xrfragment_XRF.T_PREDEFINED_VIEW;
+ Frag_h["tag"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["pos"] = xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_VECTOR3 | xrfragment_XRF.T_STRING | xrfragment_XRF.T_STRING_OBJ | xrfragment_XRF.METADATA | xrfragment_XRF.NAVIGATOR;
+ Frag_h["rot"] = xrfragment_XRF.QUERY_OPERATOR | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_VECTOR3 | xrfragment_XRF.METADATA | xrfragment_XRF.NAVIGATOR;
+ Frag_h["t"] = xrfragment_XRF.ASSET | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_FLOAT | xrfragment_XRF.T_VECTOR2 | xrfragment_XRF.T_STRING | xrfragment_XRF.NAVIGATOR | xrfragment_XRF.METADATA;
+ Frag_h["tv"] = xrfragment_XRF.ASSET | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_FLOAT | xrfragment_XRF.T_VECTOR2 | xrfragment_XRF.T_VECTOR3 | xrfragment_XRF.NAVIGATOR | xrfragment_XRF.METADATA;
+ Frag_h["namespace"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["SPDX"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["unit"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["description"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["session"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_URL | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.NAVIGATOR | xrfragment_XRF.METADATA | xrfragment_XRF.PROMPT;
+ var keyStripped = key.replace(xrfragment_XRF.operators.r,"");
+ var isPVDynamic = key.length > 0 && !Object.prototype.hasOwnProperty.call(Frag_h,key);
+ var isPVDefault = value.length == 0 && key.length > 0 && key == "#";
+ if(isPVDynamic) {
+ var v = new xrfragment_XRF(key,xrfragment_XRF.PV_EXECUTE | xrfragment_XRF.NAVIGATOR,index);
+ v.validate(value);
+ store[keyStripped] = v;
+ return true;
+ }
+ var v = new xrfragment_XRF(key,Frag_h[key],index);
+ if(Object.prototype.hasOwnProperty.call(Frag_h,key)) {
+ if(!v.validate(value)) {
+ console.log("src/xrfragment/Parser.hx:66:","⚠ fragment '" + key + "' has incompatible value (" + value + ")");
+ return false;
+ }
+ store[keyStripped] = v;
+ if(xrfragment_Parser.debug) {
+ console.log("src/xrfragment/Parser.hx:70:","✔ " + key + ": " + v.string);
+ }
+ } else {
+ if(typeof(value) == "string") {
+ v.guessType(v,value);
+ }
+ v.noXRF = true;
+ store[keyStripped] = v;
+ }
+ return true;
+};
+var xrfragment_URI = $hx_exports["xrfragment"]["URI"] = function() { };
+xrfragment_URI.__name__ = true;
+xrfragment_URI.parse = function(url,filter) {
+ var store = { };
+ if(url == null || url.indexOf("#") == -1) {
+ return store;
+ }
+ var fragment = url.split("#");
+ var splitArray = fragment[1].split("&");
+ var _g = 0;
+ var _g1 = splitArray.length;
+ while(_g < _g1) {
+ var i = _g++;
+ var splitByEqual = splitArray[i].split("=");
+ var regexPlus = new EReg("\\+","g");
+ var key = splitByEqual[0];
+ var value = "";
+ if(splitByEqual.length > 1) {
+ var s = regexPlus.split(splitByEqual[1]).join(" ");
+ value = decodeURIComponent(s.split("+").join(" "));
+ }
+ var ok = xrfragment_Parser.parse(key,value,store,i);
+ }
+ if(filter != null && filter != 0) {
+ var _g = 0;
+ var _g1 = Reflect.fields(store);
+ while(_g < _g1.length) {
+ var key = _g1[_g];
+ ++_g;
+ var xrf = store[key];
+ if(!xrf.is(filter)) {
+ Reflect.deleteField(store,key);
+ }
+ }
+ }
+ return store;
+};
+var xrfragment_XRF = $hx_exports["xrfragment"]["XRF"] = function(_fragment,_flags,_index) {
+ this.fragment = _fragment;
+ this.flags = _flags;
+ this.index = _index;
+};
+xrfragment_XRF.__name__ = true;
+xrfragment_XRF.set = function(flag,flags) {
+ return flags | flag;
+};
+xrfragment_XRF.unset = function(flag,flags) {
+ return flags & ~flag;
+};
+xrfragment_XRF.prototype = {
+ is: function(flag) {
+ var v = this.flags;
+ if(!(typeof(v) == "number" && ((v | 0) === v))) {
+ this.flags = 0;
+ }
+ return (this.flags & flag) != 0;
+ }
+ ,validate: function(value) {
+ this.guessType(this,value);
+ var ok = true;
+ if(!this.is(xrfragment_XRF.T_FLOAT) && this.is(xrfragment_XRF.T_VECTOR2) && !(typeof(this.x) == "number" && typeof(this.y) == "number")) {
+ ok = false;
+ }
+ if(!(this.is(xrfragment_XRF.T_VECTOR2) || this.is(xrfragment_XRF.T_STRING)) && this.is(xrfragment_XRF.T_VECTOR3) && !(typeof(this.x) == "number" && typeof(this.y) == "number" && typeof(this.z) == "number")) {
+ ok = false;
+ }
+ return ok;
+ }
+ ,guessType: function(v,str) {
+ v.string = str;
+ if(typeof(str) != "string") {
+ return;
+ }
+ if(str.length > 0) {
+ if(str.split(",").length > 1) {
+ var xyzw = str.split(",");
+ if(xyzw.length > 0) {
+ v.x = parseFloat(xyzw[0]);
+ }
+ if(xyzw.length > 1) {
+ v.y = parseFloat(xyzw[1]);
+ }
+ if(xyzw.length > 2) {
+ v.z = parseFloat(xyzw[2]);
+ }
+ if(xyzw.length > 3) {
+ v.w = parseFloat(xyzw[3]);
+ }
+ }
+ if(xrfragment_XRF.isColor.match(str)) {
+ v.color = str;
+ }
+ if(xrfragment_XRF.isFloat.match(str)) {
+ v.x = parseFloat(str);
+ v.float = v.x;
+ }
+ if(xrfragment_XRF.isInt.match(str)) {
+ v.int = Std.parseInt(str);
+ v.x = v.int;
+ }
+ v.filter = new xrfragment_Filter(v.fragment + "=" + v.string);
+ } else {
+ v.filter = new xrfragment_Filter(v.fragment);
+ }
+ }
+};
+if(typeof(performance) != "undefined" ? typeof(performance.now) == "function" : false) {
+ HxOverrides.now = performance.now.bind(performance);
+}
+String.__name__ = true;
+Array.__name__ = true;
+js_Boot.__toStr = ({ }).toString;
+xrfragment_Parser.error = "";
+xrfragment_Parser.debug = false;
+xrfragment_XRF.ASSET = 1;
+xrfragment_XRF.PROP_BIND = 2;
+xrfragment_XRF.QUERY_OPERATOR = 4;
+xrfragment_XRF.PROMPT = 8;
+xrfragment_XRF.ROUNDROBIN = 16;
+xrfragment_XRF.NAVIGATOR = 32;
+xrfragment_XRF.METADATA = 64;
+xrfragment_XRF.PV_OVERRIDE = 128;
+xrfragment_XRF.PV_EXECUTE = 256;
+xrfragment_XRF.T_COLOR = 8192;
+xrfragment_XRF.T_INT = 16384;
+xrfragment_XRF.T_FLOAT = 32768;
+xrfragment_XRF.T_VECTOR2 = 65536;
+xrfragment_XRF.T_VECTOR3 = 131072;
+xrfragment_XRF.T_URL = 262144;
+xrfragment_XRF.T_PREDEFINED_VIEW = 524288;
+xrfragment_XRF.T_STRING = 1048576;
+xrfragment_XRF.T_STRING_OBJ = 2097152;
+xrfragment_XRF.T_STRING_OBJ_PROP = 4194304;
+xrfragment_XRF.isColor = new EReg("^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$","");
+xrfragment_XRF.isInt = new EReg("^[-0-9]+$","");
+xrfragment_XRF.isFloat = new EReg("^[-0-9]+\\.[0-9]+$","");
+xrfragment_XRF.isVector = new EReg("([,]+|\\w)","");
+xrfragment_XRF.isUrl = new EReg("(://)?\\..*","");
+xrfragment_XRF.isUrlOrPretypedView = new EReg("(^#|://)?\\..*","");
+xrfragment_XRF.isString = new EReg(".*","");
+xrfragment_XRF.operators = new EReg("(^-|[\\*]+)","");
+xrfragment_XRF.isProp = new EReg("^.*=[><=]?","");
+xrfragment_XRF.isExclude = new EReg("^-","");
+xrfragment_XRF.isDeep = new EReg("\\*","");
+xrfragment_XRF.isNumber = new EReg("^[0-9\\.]+$","");
+})({});
+var xrfragment = $hx_exports["xrfragment"];
+export default xrfragment;
+var $hx_exports = typeof exports != "undefined" ? exports : typeof window != "undefined" ? window : typeof self != "undefined" ? self : this;
+(function ($global) { "use strict";
+$hx_exports["xrfragment"] = $hx_exports["xrfragment"] || {};
+var EReg = function(r,opt) {
+ this.r = new RegExp(r,opt.split("u").join(""));
+};
+EReg.__name__ = true;
+EReg.prototype = {
+ match: function(s) {
+ if(this.r.global) {
+ this.r.lastIndex = 0;
+ }
+ this.r.m = this.r.exec(s);
+ this.r.s = s;
+ return this.r.m != null;
+ }
+ ,split: function(s) {
+ var d = "#__delim__#";
+ return s.replace(this.r,d).split(d);
+ }
+};
+var HxOverrides = function() { };
+HxOverrides.__name__ = true;
+HxOverrides.cca = function(s,index) {
+ var x = s.charCodeAt(index);
+ if(x != x) {
+ return undefined;
+ }
+ return x;
+};
+HxOverrides.substr = function(s,pos,len) {
+ if(len == null) {
+ len = s.length;
+ } else if(len < 0) {
+ if(pos == 0) {
+ len = s.length + len;
+ } else {
+ return "";
+ }
+ }
+ return s.substr(pos,len);
+};
+HxOverrides.now = function() {
+ return Date.now();
+};
+Math.__name__ = true;
+var Reflect = function() { };
+Reflect.__name__ = true;
+Reflect.field = function(o,field) {
+ try {
+ return o[field];
+ } catch( _g ) {
+ return null;
+ }
+};
+Reflect.fields = function(o) {
+ var a = [];
+ if(o != null) {
+ var hasOwnProperty = Object.prototype.hasOwnProperty;
+ for( var f in o ) {
+ if(f != "__id__" && f != "hx__closures__" && hasOwnProperty.call(o,f)) {
+ a.push(f);
+ }
+ }
+ }
+ return a;
+};
+Reflect.deleteField = function(o,field) {
+ if(!Object.prototype.hasOwnProperty.call(o,field)) {
+ return false;
+ }
+ delete(o[field]);
+ return true;
+};
+Reflect.copy = function(o) {
+ if(o == null) {
+ return null;
+ }
+ var o2 = { };
+ var _g = 0;
+ var _g1 = Reflect.fields(o);
+ while(_g < _g1.length) {
+ var f = _g1[_g];
+ ++_g;
+ o2[f] = Reflect.field(o,f);
+ }
+ return o2;
+};
+var Std = function() { };
+Std.__name__ = true;
+Std.string = function(s) {
+ return js_Boot.__string_rec(s,"");
+};
+Std.parseInt = function(x) {
+ if(x != null) {
+ var _g = 0;
+ var _g1 = x.length;
+ while(_g < _g1) {
+ var i = _g++;
+ var c = x.charCodeAt(i);
+ if(c <= 8 || c >= 14 && c != 32 && c != 45) {
+ var nc = x.charCodeAt(i + 1);
+ var v = parseInt(x,nc == 120 || nc == 88 ? 16 : 10);
+ if(isNaN(v)) {
+ return null;
+ } else {
+ return v;
+ }
+ }
+ }
+ }
+ return null;
+};
+var StringTools = function() { };
+StringTools.__name__ = true;
+StringTools.isSpace = function(s,pos) {
+ var c = HxOverrides.cca(s,pos);
+ if(!(c > 8 && c < 14)) {
+ return c == 32;
+ } else {
+ return true;
+ }
+};
+StringTools.ltrim = function(s) {
+ var l = s.length;
+ var r = 0;
+ while(r < l && StringTools.isSpace(s,r)) ++r;
+ if(r > 0) {
+ return HxOverrides.substr(s,r,l - r);
+ } else {
+ return s;
+ }
+};
+StringTools.rtrim = function(s) {
+ var l = s.length;
+ var r = 0;
+ while(r < l && StringTools.isSpace(s,l - r - 1)) ++r;
+ if(r > 0) {
+ return HxOverrides.substr(s,0,l - r);
+ } else {
+ return s;
+ }
+};
+StringTools.trim = function(s) {
+ return StringTools.ltrim(StringTools.rtrim(s));
+};
+var haxe_iterators_ArrayIterator = function(array) {
+ this.current = 0;
+ this.array = array;
+};
+haxe_iterators_ArrayIterator.__name__ = true;
+haxe_iterators_ArrayIterator.prototype = {
+ hasNext: function() {
+ return this.current < this.array.length;
+ }
+ ,next: function() {
+ return this.array[this.current++];
+ }
+};
+var js_Boot = function() { };
+js_Boot.__name__ = true;
+js_Boot.__string_rec = function(o,s) {
+ if(o == null) {
+ return "null";
+ }
+ if(s.length >= 5) {
+ return "<...>";
+ }
+ var t = typeof(o);
+ if(t == "function" && (o.__name__ || o.__ename__)) {
+ t = "object";
+ }
+ switch(t) {
+ case "function":
+ return "";
+ case "object":
+ if(((o) instanceof Array)) {
+ var str = "[";
+ s += "\t";
+ var _g = 0;
+ var _g1 = o.length;
+ while(_g < _g1) {
+ var i = _g++;
+ str += (i > 0 ? "," : "") + js_Boot.__string_rec(o[i],s);
+ }
+ str += "]";
+ return str;
+ }
+ var tostr;
+ try {
+ tostr = o.toString;
+ } catch( _g ) {
+ return "???";
+ }
+ if(tostr != null && tostr != Object.toString && typeof(tostr) == "function") {
+ var s2 = o.toString();
+ if(s2 != "[object Object]") {
+ return s2;
+ }
+ }
+ var str = "{\n";
+ s += "\t";
+ var hasp = o.hasOwnProperty != null;
+ var k = null;
+ for( k in o ) {
+ if(hasp && !o.hasOwnProperty(k)) {
+ continue;
+ }
+ if(k == "prototype" || k == "__class__" || k == "__super__" || k == "__interfaces__" || k == "__properties__") {
+ continue;
+ }
+ if(str.length != 2) {
+ str += ", \n";
+ }
+ str += s + k + " : " + js_Boot.__string_rec(o[k],s);
+ }
+ s = s.substring(1);
+ str += "\n" + s + "}";
+ return str;
+ case "string":
+ return o;
+ default:
+ return String(o);
+ }
+};
+var xrfragment_Filter = $hx_exports["xrfragment"]["Filter"] = function(str) {
+ this.q = { };
+ this.str = "";
+ if(str != null) {
+ this.parse(str);
+ }
+};
+xrfragment_Filter.__name__ = true;
+xrfragment_Filter.prototype = {
+ toObject: function() {
+ return Reflect.copy(this.q);
+ }
+ ,get: function() {
+ return Reflect.copy(this.q);
+ }
+ ,parse: function(str) {
+ var token = str.split(" ");
+ var q = { };
+ var process = function(str,prefix) {
+ if(prefix == null) {
+ prefix = "";
+ }
+ str = StringTools.trim(str);
+ var k = str.split("=")[0];
+ var v = str.split("=")[1];
+ var filter = { };
+ if(q[prefix + k]) {
+ filter = q[prefix + k];
+ }
+ if(xrfragment_XRF.isProp.match(str)) {
+ var oper = "";
+ if(str.indexOf(">") != -1) {
+ oper = ">";
+ }
+ if(str.indexOf("<") != -1) {
+ oper = "<";
+ }
+ if(xrfragment_XRF.isExclude.match(k)) {
+ k = HxOverrides.substr(k,1,null);
+ }
+ v = HxOverrides.substr(v,oper.length,null);
+ if(oper.length == 0) {
+ oper = "=";
+ }
+ var rule = { };
+ if(xrfragment_XRF.isNumber.match(v)) {
+ rule[oper] = parseFloat(v);
+ } else {
+ rule[oper] = v;
+ }
+ q["expr"] = rule;
+ }
+ var value = xrfragment_XRF.isDeep.match(str) ? k.split("*").length - 1 : 0;
+ q["deep"] = value;
+ var value = xrfragment_XRF.isExclude.match(str) ? false : true;
+ q["show"] = value;
+ var value = k.replace(xrfragment_XRF.operators.r,"");
+ q["key"] = value;
+ q["value"] = v;
+ };
+ var _g = 0;
+ var _g1 = token.length;
+ while(_g < _g1) {
+ var i = _g++;
+ process(token[i]);
+ }
+ return this.q = q;
+ }
+ ,test: function(obj) {
+ var qualify = false;
+ var _g = 0;
+ var _g1 = Reflect.fields(obj);
+ while(_g < _g1.length) {
+ var k = _g1[_g];
+ ++_g;
+ var v = Std.string(Reflect.field(obj,k));
+ if(this.testProperty(k,v)) {
+ qualify = true;
+ }
+ }
+ var _g = 0;
+ var _g1 = Reflect.fields(obj);
+ while(_g < _g1.length) {
+ var k = _g1[_g];
+ ++_g;
+ var v = Std.string(Reflect.field(obj,k));
+ if(this.testProperty(k,v,true)) {
+ qualify = false;
+ }
+ }
+ return qualify;
+ }
+ ,testProperty: function(property,value,exclude) {
+ var conds = 0;
+ var fails = 0;
+ var qualify = 0;
+ var testprop = function(expr) {
+ conds += 1;
+ fails += expr ? 0 : 1;
+ return expr;
+ };
+ if(this.q[value] != null) {
+ var v = this.q[value];
+ if(v[property] != null) {
+ return v[property];
+ }
+ }
+ if(Reflect.field(this.q,"expr")) {
+ var f = Reflect.field(this.q,"expr");
+ if(!Reflect.field(this.q,"show")) {
+ if(Reflect.field(f,"!=") != null && testprop((value == null ? "null" : "" + value) == Std.string(Reflect.field(f,"!="))) && exclude) {
+ ++qualify;
+ }
+ } else {
+ if(Reflect.field(f,"*") != null && testprop(parseFloat(value) != null)) {
+ ++qualify;
+ }
+ if(Reflect.field(f,">") != null && testprop(parseFloat(value) >= parseFloat(Reflect.field(f,">")))) {
+ ++qualify;
+ }
+ if(Reflect.field(f,"<") != null && testprop(parseFloat(value) <= parseFloat(Reflect.field(f,"<")))) {
+ ++qualify;
+ }
+ if(Reflect.field(f,"=") != null && (testprop(value == Reflect.field(f,"=")) || testprop(parseFloat(value) == parseFloat(Reflect.field(f,"="))))) {
+ ++qualify;
+ }
+ }
+ }
+ return qualify > 0;
+ }
+};
+var xrfragment_Parser = $hx_exports["xrfragment"]["Parser"] = function() { };
+xrfragment_Parser.__name__ = true;
+xrfragment_Parser.parse = function(key,value,store,index) {
+ var Frag_h = Object.create(null);
+ Frag_h["#"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_PREDEFINED_VIEW | xrfragment_XRF.PV_EXECUTE;
+ Frag_h["src"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_URL;
+ Frag_h["href"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_URL | xrfragment_XRF.T_PREDEFINED_VIEW;
+ Frag_h["tag"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["pos"] = xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_VECTOR3 | xrfragment_XRF.T_STRING | xrfragment_XRF.T_STRING_OBJ | xrfragment_XRF.METADATA | xrfragment_XRF.NAVIGATOR;
+ Frag_h["rot"] = xrfragment_XRF.QUERY_OPERATOR | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_VECTOR3 | xrfragment_XRF.METADATA | xrfragment_XRF.NAVIGATOR;
+ Frag_h["t"] = xrfragment_XRF.ASSET | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_FLOAT | xrfragment_XRF.T_VECTOR2 | xrfragment_XRF.T_STRING | xrfragment_XRF.NAVIGATOR | xrfragment_XRF.METADATA;
+ Frag_h["tv"] = xrfragment_XRF.ASSET | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_FLOAT | xrfragment_XRF.T_VECTOR2 | xrfragment_XRF.T_VECTOR3 | xrfragment_XRF.NAVIGATOR | xrfragment_XRF.METADATA;
+ Frag_h["namespace"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["SPDX"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["unit"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["description"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["session"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_URL | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.NAVIGATOR | xrfragment_XRF.METADATA | xrfragment_XRF.PROMPT;
+ var keyStripped = key.replace(xrfragment_XRF.operators.r,"");
+ var isPVDynamic = key.length > 0 && !Object.prototype.hasOwnProperty.call(Frag_h,key);
+ var isPVDefault = value.length == 0 && key.length > 0 && key == "#";
+ if(isPVDynamic) {
+ var v = new xrfragment_XRF(key,xrfragment_XRF.PV_EXECUTE | xrfragment_XRF.NAVIGATOR,index);
+ v.validate(value);
+ store[keyStripped] = v;
+ return true;
+ }
+ var v = new xrfragment_XRF(key,Frag_h[key],index);
+ if(Object.prototype.hasOwnProperty.call(Frag_h,key)) {
+ if(!v.validate(value)) {
+ console.log("src/xrfragment/Parser.hx:66:","⚠ fragment '" + key + "' has incompatible value (" + value + ")");
+ return false;
+ }
+ store[keyStripped] = v;
+ if(xrfragment_Parser.debug) {
+ console.log("src/xrfragment/Parser.hx:70:","✔ " + key + ": " + v.string);
+ }
+ } else {
+ if(typeof(value) == "string") {
+ v.guessType(v,value);
+ }
+ v.noXRF = true;
+ store[keyStripped] = v;
+ }
+ return true;
+};
+var xrfragment_URI = $hx_exports["xrfragment"]["URI"] = function() { };
+xrfragment_URI.__name__ = true;
+xrfragment_URI.parse = function(url,filter) {
+ var store = { };
+ if(url == null || url.indexOf("#") == -1) {
+ return store;
+ }
+ var fragment = url.split("#");
+ var splitArray = fragment[1].split("&");
+ var _g = 0;
+ var _g1 = splitArray.length;
+ while(_g < _g1) {
+ var i = _g++;
+ var splitByEqual = splitArray[i].split("=");
+ var regexPlus = new EReg("\\+","g");
+ var key = splitByEqual[0];
+ var value = "";
+ if(splitByEqual.length > 1) {
+ var s = regexPlus.split(splitByEqual[1]).join(" ");
+ value = decodeURIComponent(s.split("+").join(" "));
+ }
+ var ok = xrfragment_Parser.parse(key,value,store,i);
+ }
+ if(filter != null && filter != 0) {
+ var _g = 0;
+ var _g1 = Reflect.fields(store);
+ while(_g < _g1.length) {
+ var key = _g1[_g];
+ ++_g;
+ var xrf = store[key];
+ if(!xrf.is(filter)) {
+ Reflect.deleteField(store,key);
+ }
+ }
+ }
+ return store;
+};
+var xrfragment_XRF = $hx_exports["xrfragment"]["XRF"] = function(_fragment,_flags,_index) {
+ this.fragment = _fragment;
+ this.flags = _flags;
+ this.index = _index;
+};
+xrfragment_XRF.__name__ = true;
+xrfragment_XRF.set = function(flag,flags) {
+ return flags | flag;
+};
+xrfragment_XRF.unset = function(flag,flags) {
+ return flags & ~flag;
+};
+xrfragment_XRF.prototype = {
+ is: function(flag) {
+ var v = this.flags;
+ if(!(typeof(v) == "number" && ((v | 0) === v))) {
+ this.flags = 0;
+ }
+ return (this.flags & flag) != 0;
+ }
+ ,validate: function(value) {
+ this.guessType(this,value);
+ var ok = true;
+ if(!this.is(xrfragment_XRF.T_FLOAT) && this.is(xrfragment_XRF.T_VECTOR2) && !(typeof(this.x) == "number" && typeof(this.y) == "number")) {
+ ok = false;
+ }
+ if(!(this.is(xrfragment_XRF.T_VECTOR2) || this.is(xrfragment_XRF.T_STRING)) && this.is(xrfragment_XRF.T_VECTOR3) && !(typeof(this.x) == "number" && typeof(this.y) == "number" && typeof(this.z) == "number")) {
+ ok = false;
+ }
+ return ok;
+ }
+ ,guessType: function(v,str) {
+ v.string = str;
+ if(typeof(str) != "string") {
+ return;
+ }
+ if(str.length > 0) {
+ if(str.split(",").length > 1) {
+ var xyzw = str.split(",");
+ if(xyzw.length > 0) {
+ v.x = parseFloat(xyzw[0]);
+ }
+ if(xyzw.length > 1) {
+ v.y = parseFloat(xyzw[1]);
+ }
+ if(xyzw.length > 2) {
+ v.z = parseFloat(xyzw[2]);
+ }
+ if(xyzw.length > 3) {
+ v.w = parseFloat(xyzw[3]);
+ }
+ }
+ if(xrfragment_XRF.isColor.match(str)) {
+ v.color = str;
+ }
+ if(xrfragment_XRF.isFloat.match(str)) {
+ v.x = parseFloat(str);
+ v.float = v.x;
+ }
+ if(xrfragment_XRF.isInt.match(str)) {
+ v.int = Std.parseInt(str);
+ v.x = v.int;
+ }
+ v.filter = new xrfragment_Filter(v.fragment + "=" + v.string);
+ } else {
+ v.filter = new xrfragment_Filter(v.fragment);
+ }
+ }
+};
+if(typeof(performance) != "undefined" ? typeof(performance.now) == "function" : false) {
+ HxOverrides.now = performance.now.bind(performance);
+}
+String.__name__ = true;
+Array.__name__ = true;
+js_Boot.__toStr = ({ }).toString;
+xrfragment_Parser.error = "";
+xrfragment_Parser.debug = false;
+xrfragment_XRF.ASSET = 1;
+xrfragment_XRF.PROP_BIND = 2;
+xrfragment_XRF.QUERY_OPERATOR = 4;
+xrfragment_XRF.PROMPT = 8;
+xrfragment_XRF.ROUNDROBIN = 16;
+xrfragment_XRF.NAVIGATOR = 32;
+xrfragment_XRF.METADATA = 64;
+xrfragment_XRF.PV_OVERRIDE = 128;
+xrfragment_XRF.PV_EXECUTE = 256;
+xrfragment_XRF.T_COLOR = 8192;
+xrfragment_XRF.T_INT = 16384;
+xrfragment_XRF.T_FLOAT = 32768;
+xrfragment_XRF.T_VECTOR2 = 65536;
+xrfragment_XRF.T_VECTOR3 = 131072;
+xrfragment_XRF.T_URL = 262144;
+xrfragment_XRF.T_PREDEFINED_VIEW = 524288;
+xrfragment_XRF.T_STRING = 1048576;
+xrfragment_XRF.T_STRING_OBJ = 2097152;
+xrfragment_XRF.T_STRING_OBJ_PROP = 4194304;
+xrfragment_XRF.isColor = new EReg("^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$","");
+xrfragment_XRF.isInt = new EReg("^[-0-9]+$","");
+xrfragment_XRF.isFloat = new EReg("^[-0-9]+\\.[0-9]+$","");
+xrfragment_XRF.isVector = new EReg("([,]+|\\w)","");
+xrfragment_XRF.isUrl = new EReg("(://)?\\..*","");
+xrfragment_XRF.isUrlOrPretypedView = new EReg("(^#|://)?\\..*","");
+xrfragment_XRF.isString = new EReg(".*","");
+xrfragment_XRF.operators = new EReg("(^-|[\\*]+)","");
+xrfragment_XRF.isProp = new EReg("^.*=[><=]?","");
+xrfragment_XRF.isExclude = new EReg("^-","");
+xrfragment_XRF.isDeep = new EReg("\\*","");
+xrfragment_XRF.isNumber = new EReg("^[0-9\\.]+$","");
+})({});
+var xrfragment = $hx_exports["xrfragment"];
+export default xrfragment;
+var $hx_exports = typeof exports != "undefined" ? exports : typeof window != "undefined" ? window : typeof self != "undefined" ? self : this;
+(function ($global) { "use strict";
+$hx_exports["xrfragment"] = $hx_exports["xrfragment"] || {};
+var EReg = function(r,opt) {
+ this.r = new RegExp(r,opt.split("u").join(""));
+};
+EReg.__name__ = true;
+EReg.prototype = {
+ match: function(s) {
+ if(this.r.global) {
+ this.r.lastIndex = 0;
+ }
+ this.r.m = this.r.exec(s);
+ this.r.s = s;
+ return this.r.m != null;
+ }
+ ,split: function(s) {
+ var d = "#__delim__#";
+ return s.replace(this.r,d).split(d);
+ }
+};
+var HxOverrides = function() { };
+HxOverrides.__name__ = true;
+HxOverrides.cca = function(s,index) {
+ var x = s.charCodeAt(index);
+ if(x != x) {
+ return undefined;
+ }
+ return x;
+};
+HxOverrides.substr = function(s,pos,len) {
+ if(len == null) {
+ len = s.length;
+ } else if(len < 0) {
+ if(pos == 0) {
+ len = s.length + len;
+ } else {
+ return "";
+ }
+ }
+ return s.substr(pos,len);
+};
+HxOverrides.now = function() {
+ return Date.now();
+};
+Math.__name__ = true;
+var Reflect = function() { };
+Reflect.__name__ = true;
+Reflect.field = function(o,field) {
+ try {
+ return o[field];
+ } catch( _g ) {
+ return null;
+ }
+};
+Reflect.fields = function(o) {
+ var a = [];
+ if(o != null) {
+ var hasOwnProperty = Object.prototype.hasOwnProperty;
+ for( var f in o ) {
+ if(f != "__id__" && f != "hx__closures__" && hasOwnProperty.call(o,f)) {
+ a.push(f);
+ }
+ }
+ }
+ return a;
+};
+Reflect.deleteField = function(o,field) {
+ if(!Object.prototype.hasOwnProperty.call(o,field)) {
+ return false;
+ }
+ delete(o[field]);
+ return true;
+};
+Reflect.copy = function(o) {
+ if(o == null) {
+ return null;
+ }
+ var o2 = { };
+ var _g = 0;
+ var _g1 = Reflect.fields(o);
+ while(_g < _g1.length) {
+ var f = _g1[_g];
+ ++_g;
+ o2[f] = Reflect.field(o,f);
+ }
+ return o2;
+};
+var Std = function() { };
+Std.__name__ = true;
+Std.string = function(s) {
+ return js_Boot.__string_rec(s,"");
+};
+Std.parseInt = function(x) {
+ if(x != null) {
+ var _g = 0;
+ var _g1 = x.length;
+ while(_g < _g1) {
+ var i = _g++;
+ var c = x.charCodeAt(i);
+ if(c <= 8 || c >= 14 && c != 32 && c != 45) {
+ var nc = x.charCodeAt(i + 1);
+ var v = parseInt(x,nc == 120 || nc == 88 ? 16 : 10);
+ if(isNaN(v)) {
+ return null;
+ } else {
+ return v;
+ }
+ }
+ }
+ }
+ return null;
+};
+var StringTools = function() { };
+StringTools.__name__ = true;
+StringTools.isSpace = function(s,pos) {
+ var c = HxOverrides.cca(s,pos);
+ if(!(c > 8 && c < 14)) {
+ return c == 32;
+ } else {
+ return true;
+ }
+};
+StringTools.ltrim = function(s) {
+ var l = s.length;
+ var r = 0;
+ while(r < l && StringTools.isSpace(s,r)) ++r;
+ if(r > 0) {
+ return HxOverrides.substr(s,r,l - r);
+ } else {
+ return s;
+ }
+};
+StringTools.rtrim = function(s) {
+ var l = s.length;
+ var r = 0;
+ while(r < l && StringTools.isSpace(s,l - r - 1)) ++r;
+ if(r > 0) {
+ return HxOverrides.substr(s,0,l - r);
+ } else {
+ return s;
+ }
+};
+StringTools.trim = function(s) {
+ return StringTools.ltrim(StringTools.rtrim(s));
+};
+var haxe_iterators_ArrayIterator = function(array) {
+ this.current = 0;
+ this.array = array;
+};
+haxe_iterators_ArrayIterator.__name__ = true;
+haxe_iterators_ArrayIterator.prototype = {
+ hasNext: function() {
+ return this.current < this.array.length;
+ }
+ ,next: function() {
+ return this.array[this.current++];
+ }
+};
+var js_Boot = function() { };
+js_Boot.__name__ = true;
+js_Boot.__string_rec = function(o,s) {
+ if(o == null) {
+ return "null";
+ }
+ if(s.length >= 5) {
+ return "<...>";
+ }
+ var t = typeof(o);
+ if(t == "function" && (o.__name__ || o.__ename__)) {
+ t = "object";
+ }
+ switch(t) {
+ case "function":
+ return "";
+ case "object":
+ if(((o) instanceof Array)) {
+ var str = "[";
+ s += "\t";
+ var _g = 0;
+ var _g1 = o.length;
+ while(_g < _g1) {
+ var i = _g++;
+ str += (i > 0 ? "," : "") + js_Boot.__string_rec(o[i],s);
+ }
+ str += "]";
+ return str;
+ }
+ var tostr;
+ try {
+ tostr = o.toString;
+ } catch( _g ) {
+ return "???";
+ }
+ if(tostr != null && tostr != Object.toString && typeof(tostr) == "function") {
+ var s2 = o.toString();
+ if(s2 != "[object Object]") {
+ return s2;
+ }
+ }
+ var str = "{\n";
+ s += "\t";
+ var hasp = o.hasOwnProperty != null;
+ var k = null;
+ for( k in o ) {
+ if(hasp && !o.hasOwnProperty(k)) {
+ continue;
+ }
+ if(k == "prototype" || k == "__class__" || k == "__super__" || k == "__interfaces__" || k == "__properties__") {
+ continue;
+ }
+ if(str.length != 2) {
+ str += ", \n";
+ }
+ str += s + k + " : " + js_Boot.__string_rec(o[k],s);
+ }
+ s = s.substring(1);
+ str += "\n" + s + "}";
+ return str;
+ case "string":
+ return o;
+ default:
+ return String(o);
+ }
+};
+var xrfragment_Filter = $hx_exports["xrfragment"]["Filter"] = function(str) {
+ this.q = { };
+ this.str = "";
+ if(str != null) {
+ this.parse(str);
+ }
+};
+xrfragment_Filter.__name__ = true;
+xrfragment_Filter.prototype = {
+ toObject: function() {
+ return Reflect.copy(this.q);
+ }
+ ,get: function() {
+ return Reflect.copy(this.q);
+ }
+ ,parse: function(str) {
+ var token = str.split(" ");
+ var q = { };
+ var process = function(str,prefix) {
+ if(prefix == null) {
+ prefix = "";
+ }
+ str = StringTools.trim(str);
+ var k = str.split("=")[0];
+ var v = str.split("=")[1];
+ var filter = { };
+ if(q[prefix + k]) {
+ filter = q[prefix + k];
+ }
+ if(xrfragment_XRF.isProp.match(str)) {
+ var oper = "";
+ if(str.indexOf(">") != -1) {
+ oper = ">";
+ }
+ if(str.indexOf("<") != -1) {
+ oper = "<";
+ }
+ if(xrfragment_XRF.isExclude.match(k)) {
+ k = HxOverrides.substr(k,1,null);
+ }
+ v = HxOverrides.substr(v,oper.length,null);
+ if(oper.length == 0) {
+ oper = "=";
+ }
+ var rule = { };
+ if(xrfragment_XRF.isNumber.match(v)) {
+ rule[oper] = parseFloat(v);
+ } else {
+ rule[oper] = v;
+ }
+ q["expr"] = rule;
+ }
+ var value = xrfragment_XRF.isDeep.match(str) ? k.split("*").length - 1 : 0;
+ q["deep"] = value;
+ var value = xrfragment_XRF.isExclude.match(str) ? false : true;
+ q["show"] = value;
+ var value = k.replace(xrfragment_XRF.operators.r,"");
+ q["key"] = value;
+ q["value"] = v;
+ };
+ var _g = 0;
+ var _g1 = token.length;
+ while(_g < _g1) {
+ var i = _g++;
+ process(token[i]);
+ }
+ return this.q = q;
+ }
+ ,test: function(obj) {
+ var qualify = false;
+ var _g = 0;
+ var _g1 = Reflect.fields(obj);
+ while(_g < _g1.length) {
+ var k = _g1[_g];
+ ++_g;
+ var v = Std.string(Reflect.field(obj,k));
+ if(this.testProperty(k,v)) {
+ qualify = true;
+ }
+ }
+ var _g = 0;
+ var _g1 = Reflect.fields(obj);
+ while(_g < _g1.length) {
+ var k = _g1[_g];
+ ++_g;
+ var v = Std.string(Reflect.field(obj,k));
+ if(this.testProperty(k,v,true)) {
+ qualify = false;
+ }
+ }
+ return qualify;
+ }
+ ,testProperty: function(property,value,exclude) {
+ var conds = 0;
+ var fails = 0;
+ var qualify = 0;
+ var testprop = function(expr) {
+ conds += 1;
+ fails += expr ? 0 : 1;
+ return expr;
+ };
+ if(this.q[value] != null) {
+ var v = this.q[value];
+ if(v[property] != null) {
+ return v[property];
+ }
+ }
+ if(Reflect.field(this.q,"expr")) {
+ var f = Reflect.field(this.q,"expr");
+ if(!Reflect.field(this.q,"show")) {
+ if(Reflect.field(f,"!=") != null && testprop((value == null ? "null" : "" + value) == Std.string(Reflect.field(f,"!="))) && exclude) {
+ ++qualify;
+ }
+ } else {
+ if(Reflect.field(f,"*") != null && testprop(parseFloat(value) != null)) {
+ ++qualify;
+ }
+ if(Reflect.field(f,">") != null && testprop(parseFloat(value) >= parseFloat(Reflect.field(f,">")))) {
+ ++qualify;
+ }
+ if(Reflect.field(f,"<") != null && testprop(parseFloat(value) <= parseFloat(Reflect.field(f,"<")))) {
+ ++qualify;
+ }
+ if(Reflect.field(f,"=") != null && (testprop(value == Reflect.field(f,"=")) || testprop(parseFloat(value) == parseFloat(Reflect.field(f,"="))))) {
+ ++qualify;
+ }
+ }
+ }
+ return qualify > 0;
+ }
+};
+var xrfragment_Parser = $hx_exports["xrfragment"]["Parser"] = function() { };
+xrfragment_Parser.__name__ = true;
+xrfragment_Parser.parse = function(key,value,store,index) {
+ var Frag_h = Object.create(null);
+ Frag_h["#"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_PREDEFINED_VIEW | xrfragment_XRF.PV_EXECUTE;
+ Frag_h["src"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_URL;
+ Frag_h["href"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_URL | xrfragment_XRF.T_PREDEFINED_VIEW;
+ Frag_h["tag"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["pos"] = xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_VECTOR3 | xrfragment_XRF.T_STRING | xrfragment_XRF.T_STRING_OBJ | xrfragment_XRF.METADATA | xrfragment_XRF.NAVIGATOR;
+ Frag_h["rot"] = xrfragment_XRF.QUERY_OPERATOR | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_VECTOR3 | xrfragment_XRF.METADATA | xrfragment_XRF.NAVIGATOR;
+ Frag_h["t"] = xrfragment_XRF.ASSET | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_FLOAT | xrfragment_XRF.T_VECTOR2 | xrfragment_XRF.T_STRING | xrfragment_XRF.NAVIGATOR | xrfragment_XRF.METADATA;
+ Frag_h["tv"] = xrfragment_XRF.ASSET | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_FLOAT | xrfragment_XRF.T_VECTOR2 | xrfragment_XRF.T_VECTOR3 | xrfragment_XRF.NAVIGATOR | xrfragment_XRF.METADATA;
+ Frag_h["namespace"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["SPDX"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["unit"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["description"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["session"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_URL | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.NAVIGATOR | xrfragment_XRF.METADATA | xrfragment_XRF.PROMPT;
+ var keyStripped = key.replace(xrfragment_XRF.operators.r,"");
+ var isPVDynamic = key.length > 0 && !Object.prototype.hasOwnProperty.call(Frag_h,key);
+ var isPVDefault = value.length == 0 && key.length > 0 && key == "#";
+ if(isPVDynamic) {
+ var v = new xrfragment_XRF(key,xrfragment_XRF.PV_EXECUTE | xrfragment_XRF.NAVIGATOR,index);
+ v.validate(value);
+ store[keyStripped] = v;
+ return true;
+ }
+ var v = new xrfragment_XRF(key,Frag_h[key],index);
+ if(Object.prototype.hasOwnProperty.call(Frag_h,key)) {
+ if(!v.validate(value)) {
+ console.log("src/xrfragment/Parser.hx:66:","⚠ fragment '" + key + "' has incompatible value (" + value + ")");
+ return false;
+ }
+ store[keyStripped] = v;
+ if(xrfragment_Parser.debug) {
+ console.log("src/xrfragment/Parser.hx:70:","✔ " + key + ": " + v.string);
+ }
+ } else {
+ if(typeof(value) == "string") {
+ v.guessType(v,value);
+ }
+ v.noXRF = true;
+ store[keyStripped] = v;
+ }
+ return true;
+};
+var xrfragment_URI = $hx_exports["xrfragment"]["URI"] = function() { };
+xrfragment_URI.__name__ = true;
+xrfragment_URI.parse = function(url,filter) {
+ var store = { };
+ if(url == null || url.indexOf("#") == -1) {
+ return store;
+ }
+ var fragment = url.split("#");
+ var splitArray = fragment[1].split("&");
+ var _g = 0;
+ var _g1 = splitArray.length;
+ while(_g < _g1) {
+ var i = _g++;
+ var splitByEqual = splitArray[i].split("=");
+ var regexPlus = new EReg("\\+","g");
+ var key = splitByEqual[0];
+ var value = "";
+ if(splitByEqual.length > 1) {
+ var s = regexPlus.split(splitByEqual[1]).join(" ");
+ value = decodeURIComponent(s.split("+").join(" "));
+ }
+ var ok = xrfragment_Parser.parse(key,value,store,i);
+ }
+ if(filter != null && filter != 0) {
+ var _g = 0;
+ var _g1 = Reflect.fields(store);
+ while(_g < _g1.length) {
+ var key = _g1[_g];
+ ++_g;
+ var xrf = store[key];
+ if(!xrf.is(filter)) {
+ Reflect.deleteField(store,key);
+ }
+ }
+ }
+ return store;
+};
+var xrfragment_XRF = $hx_exports["xrfragment"]["XRF"] = function(_fragment,_flags,_index) {
+ this.fragment = _fragment;
+ this.flags = _flags;
+ this.index = _index;
+};
+xrfragment_XRF.__name__ = true;
+xrfragment_XRF.set = function(flag,flags) {
+ return flags | flag;
+};
+xrfragment_XRF.unset = function(flag,flags) {
+ return flags & ~flag;
+};
+xrfragment_XRF.prototype = {
+ is: function(flag) {
+ var v = this.flags;
+ if(!(typeof(v) == "number" && ((v | 0) === v))) {
+ this.flags = 0;
+ }
+ return (this.flags & flag) != 0;
+ }
+ ,validate: function(value) {
+ this.guessType(this,value);
+ var ok = true;
+ if(!this.is(xrfragment_XRF.T_FLOAT) && this.is(xrfragment_XRF.T_VECTOR2) && !(typeof(this.x) == "number" && typeof(this.y) == "number")) {
+ ok = false;
+ }
+ if(!(this.is(xrfragment_XRF.T_VECTOR2) || this.is(xrfragment_XRF.T_STRING)) && this.is(xrfragment_XRF.T_VECTOR3) && !(typeof(this.x) == "number" && typeof(this.y) == "number" && typeof(this.z) == "number")) {
+ ok = false;
+ }
+ return ok;
+ }
+ ,guessType: function(v,str) {
+ v.string = str;
+ if(typeof(str) != "string") {
+ return;
+ }
+ if(str.length > 0) {
+ if(str.split(",").length > 1) {
+ var xyzw = str.split(",");
+ if(xyzw.length > 0) {
+ v.x = parseFloat(xyzw[0]);
+ }
+ if(xyzw.length > 1) {
+ v.y = parseFloat(xyzw[1]);
+ }
+ if(xyzw.length > 2) {
+ v.z = parseFloat(xyzw[2]);
+ }
+ if(xyzw.length > 3) {
+ v.w = parseFloat(xyzw[3]);
+ }
+ }
+ if(xrfragment_XRF.isColor.match(str)) {
+ v.color = str;
+ }
+ if(xrfragment_XRF.isFloat.match(str)) {
+ v.x = parseFloat(str);
+ v.float = v.x;
+ }
+ if(xrfragment_XRF.isInt.match(str)) {
+ v.int = Std.parseInt(str);
+ v.x = v.int;
+ }
+ v.filter = new xrfragment_Filter(v.fragment + "=" + v.string);
+ } else {
+ v.filter = new xrfragment_Filter(v.fragment);
+ }
+ }
+};
+if(typeof(performance) != "undefined" ? typeof(performance.now) == "function" : false) {
+ HxOverrides.now = performance.now.bind(performance);
+}
+String.__name__ = true;
+Array.__name__ = true;
+js_Boot.__toStr = ({ }).toString;
+xrfragment_Parser.error = "";
+xrfragment_Parser.debug = false;
+xrfragment_XRF.ASSET = 1;
+xrfragment_XRF.PROP_BIND = 2;
+xrfragment_XRF.QUERY_OPERATOR = 4;
+xrfragment_XRF.PROMPT = 8;
+xrfragment_XRF.ROUNDROBIN = 16;
+xrfragment_XRF.NAVIGATOR = 32;
+xrfragment_XRF.METADATA = 64;
+xrfragment_XRF.PV_OVERRIDE = 128;
+xrfragment_XRF.PV_EXECUTE = 256;
+xrfragment_XRF.T_COLOR = 8192;
+xrfragment_XRF.T_INT = 16384;
+xrfragment_XRF.T_FLOAT = 32768;
+xrfragment_XRF.T_VECTOR2 = 65536;
+xrfragment_XRF.T_VECTOR3 = 131072;
+xrfragment_XRF.T_URL = 262144;
+xrfragment_XRF.T_PREDEFINED_VIEW = 524288;
+xrfragment_XRF.T_STRING = 1048576;
+xrfragment_XRF.T_STRING_OBJ = 2097152;
+xrfragment_XRF.T_STRING_OBJ_PROP = 4194304;
+xrfragment_XRF.isColor = new EReg("^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$","");
+xrfragment_XRF.isInt = new EReg("^[-0-9]+$","");
+xrfragment_XRF.isFloat = new EReg("^[-0-9]+\\.[0-9]+$","");
+xrfragment_XRF.isVector = new EReg("([,]+|\\w)","");
+xrfragment_XRF.isUrl = new EReg("(://)?\\..*","");
+xrfragment_XRF.isUrlOrPretypedView = new EReg("(^#|://)?\\..*","");
+xrfragment_XRF.isString = new EReg(".*","");
+xrfragment_XRF.operators = new EReg("(^-|[\\*]+)","");
+xrfragment_XRF.isProp = new EReg("^.*=[><=]?","");
+xrfragment_XRF.isExclude = new EReg("^-","");
+xrfragment_XRF.isDeep = new EReg("\\*","");
+xrfragment_XRF.isNumber = new EReg("^[0-9\\.]+$","");
+})({});
+var xrfragment = $hx_exports["xrfragment"];
+export default xrfragment;
+var $hx_exports = typeof exports != "undefined" ? exports : typeof window != "undefined" ? window : typeof self != "undefined" ? self : this;
+(function ($global) { "use strict";
+$hx_exports["xrfragment"] = $hx_exports["xrfragment"] || {};
+var EReg = function(r,opt) {
+ this.r = new RegExp(r,opt.split("u").join(""));
+};
+EReg.__name__ = true;
+EReg.prototype = {
+ match: function(s) {
+ if(this.r.global) {
+ this.r.lastIndex = 0;
+ }
+ this.r.m = this.r.exec(s);
+ this.r.s = s;
+ return this.r.m != null;
+ }
+ ,split: function(s) {
+ var d = "#__delim__#";
+ return s.replace(this.r,d).split(d);
+ }
+};
+var HxOverrides = function() { };
+HxOverrides.__name__ = true;
+HxOverrides.cca = function(s,index) {
+ var x = s.charCodeAt(index);
+ if(x != x) {
+ return undefined;
+ }
+ return x;
+};
+HxOverrides.substr = function(s,pos,len) {
+ if(len == null) {
+ len = s.length;
+ } else if(len < 0) {
+ if(pos == 0) {
+ len = s.length + len;
+ } else {
+ return "";
+ }
+ }
+ return s.substr(pos,len);
+};
+HxOverrides.now = function() {
+ return Date.now();
+};
+Math.__name__ = true;
+var Reflect = function() { };
+Reflect.__name__ = true;
+Reflect.field = function(o,field) {
+ try {
+ return o[field];
+ } catch( _g ) {
+ return null;
+ }
+};
+Reflect.fields = function(o) {
+ var a = [];
+ if(o != null) {
+ var hasOwnProperty = Object.prototype.hasOwnProperty;
+ for( var f in o ) {
+ if(f != "__id__" && f != "hx__closures__" && hasOwnProperty.call(o,f)) {
+ a.push(f);
+ }
+ }
+ }
+ return a;
+};
+Reflect.deleteField = function(o,field) {
+ if(!Object.prototype.hasOwnProperty.call(o,field)) {
+ return false;
+ }
+ delete(o[field]);
+ return true;
+};
+Reflect.copy = function(o) {
+ if(o == null) {
+ return null;
+ }
+ var o2 = { };
+ var _g = 0;
+ var _g1 = Reflect.fields(o);
+ while(_g < _g1.length) {
+ var f = _g1[_g];
+ ++_g;
+ o2[f] = Reflect.field(o,f);
+ }
+ return o2;
+};
+var Std = function() { };
+Std.__name__ = true;
+Std.string = function(s) {
+ return js_Boot.__string_rec(s,"");
+};
+Std.parseInt = function(x) {
+ if(x != null) {
+ var _g = 0;
+ var _g1 = x.length;
+ while(_g < _g1) {
+ var i = _g++;
+ var c = x.charCodeAt(i);
+ if(c <= 8 || c >= 14 && c != 32 && c != 45) {
+ var nc = x.charCodeAt(i + 1);
+ var v = parseInt(x,nc == 120 || nc == 88 ? 16 : 10);
+ if(isNaN(v)) {
+ return null;
+ } else {
+ return v;
+ }
+ }
+ }
+ }
+ return null;
+};
+var StringTools = function() { };
+StringTools.__name__ = true;
+StringTools.isSpace = function(s,pos) {
+ var c = HxOverrides.cca(s,pos);
+ if(!(c > 8 && c < 14)) {
+ return c == 32;
+ } else {
+ return true;
+ }
+};
+StringTools.ltrim = function(s) {
+ var l = s.length;
+ var r = 0;
+ while(r < l && StringTools.isSpace(s,r)) ++r;
+ if(r > 0) {
+ return HxOverrides.substr(s,r,l - r);
+ } else {
+ return s;
+ }
+};
+StringTools.rtrim = function(s) {
+ var l = s.length;
+ var r = 0;
+ while(r < l && StringTools.isSpace(s,l - r - 1)) ++r;
+ if(r > 0) {
+ return HxOverrides.substr(s,0,l - r);
+ } else {
+ return s;
+ }
+};
+StringTools.trim = function(s) {
+ return StringTools.ltrim(StringTools.rtrim(s));
+};
+var haxe_iterators_ArrayIterator = function(array) {
+ this.current = 0;
+ this.array = array;
+};
+haxe_iterators_ArrayIterator.__name__ = true;
+haxe_iterators_ArrayIterator.prototype = {
+ hasNext: function() {
+ return this.current < this.array.length;
+ }
+ ,next: function() {
+ return this.array[this.current++];
+ }
+};
+var js_Boot = function() { };
+js_Boot.__name__ = true;
+js_Boot.__string_rec = function(o,s) {
+ if(o == null) {
+ return "null";
+ }
+ if(s.length >= 5) {
+ return "<...>";
+ }
+ var t = typeof(o);
+ if(t == "function" && (o.__name__ || o.__ename__)) {
+ t = "object";
+ }
+ switch(t) {
+ case "function":
+ return "";
+ case "object":
+ if(((o) instanceof Array)) {
+ var str = "[";
+ s += "\t";
+ var _g = 0;
+ var _g1 = o.length;
+ while(_g < _g1) {
+ var i = _g++;
+ str += (i > 0 ? "," : "") + js_Boot.__string_rec(o[i],s);
+ }
+ str += "]";
+ return str;
+ }
+ var tostr;
+ try {
+ tostr = o.toString;
+ } catch( _g ) {
+ return "???";
+ }
+ if(tostr != null && tostr != Object.toString && typeof(tostr) == "function") {
+ var s2 = o.toString();
+ if(s2 != "[object Object]") {
+ return s2;
+ }
+ }
+ var str = "{\n";
+ s += "\t";
+ var hasp = o.hasOwnProperty != null;
+ var k = null;
+ for( k in o ) {
+ if(hasp && !o.hasOwnProperty(k)) {
+ continue;
+ }
+ if(k == "prototype" || k == "__class__" || k == "__super__" || k == "__interfaces__" || k == "__properties__") {
+ continue;
+ }
+ if(str.length != 2) {
+ str += ", \n";
+ }
+ str += s + k + " : " + js_Boot.__string_rec(o[k],s);
+ }
+ s = s.substring(1);
+ str += "\n" + s + "}";
+ return str;
+ case "string":
+ return o;
+ default:
+ return String(o);
+ }
+};
+var xrfragment_Filter = $hx_exports["xrfragment"]["Filter"] = function(str) {
+ this.q = { };
+ this.str = "";
+ if(str != null) {
+ this.parse(str);
+ }
+};
+xrfragment_Filter.__name__ = true;
+xrfragment_Filter.prototype = {
+ toObject: function() {
+ return Reflect.copy(this.q);
+ }
+ ,get: function() {
+ return Reflect.copy(this.q);
+ }
+ ,parse: function(str) {
+ var token = str.split(" ");
+ var q = { };
+ var process = function(str,prefix) {
+ if(prefix == null) {
+ prefix = "";
+ }
+ str = StringTools.trim(str);
+ var k = str.split("=")[0];
+ var v = str.split("=")[1];
+ var filter = { };
+ if(q[prefix + k]) {
+ filter = q[prefix + k];
+ }
+ if(xrfragment_XRF.isProp.match(str)) {
+ var oper = "";
+ if(str.indexOf(">") != -1) {
+ oper = ">";
+ }
+ if(str.indexOf("<") != -1) {
+ oper = "<";
+ }
+ if(xrfragment_XRF.isExclude.match(k)) {
+ k = HxOverrides.substr(k,1,null);
+ }
+ v = HxOverrides.substr(v,oper.length,null);
+ if(oper.length == 0) {
+ oper = "=";
+ }
+ var rule = { };
+ if(xrfragment_XRF.isNumber.match(v)) {
+ rule[oper] = parseFloat(v);
+ } else {
+ rule[oper] = v;
+ }
+ q["expr"] = rule;
+ }
+ var value = xrfragment_XRF.isDeep.match(str) ? k.split("*").length - 1 : 0;
+ q["deep"] = value;
+ var value = xrfragment_XRF.isExclude.match(str) ? false : true;
+ q["show"] = value;
+ var value = k.replace(xrfragment_XRF.operators.r,"");
+ q["key"] = value;
+ q["value"] = v;
+ };
+ var _g = 0;
+ var _g1 = token.length;
+ while(_g < _g1) {
+ var i = _g++;
+ process(token[i]);
+ }
+ return this.q = q;
+ }
+ ,test: function(obj) {
+ var qualify = false;
+ var _g = 0;
+ var _g1 = Reflect.fields(obj);
+ while(_g < _g1.length) {
+ var k = _g1[_g];
+ ++_g;
+ var v = Std.string(Reflect.field(obj,k));
+ if(this.testProperty(k,v)) {
+ qualify = true;
+ }
+ }
+ var _g = 0;
+ var _g1 = Reflect.fields(obj);
+ while(_g < _g1.length) {
+ var k = _g1[_g];
+ ++_g;
+ var v = Std.string(Reflect.field(obj,k));
+ if(this.testProperty(k,v,true)) {
+ qualify = false;
+ }
+ }
+ return qualify;
+ }
+ ,testProperty: function(property,value,exclude) {
+ var conds = 0;
+ var fails = 0;
+ var qualify = 0;
+ var testprop = function(expr) {
+ conds += 1;
+ fails += expr ? 0 : 1;
+ return expr;
+ };
+ if(this.q[value] != null) {
+ var v = this.q[value];
+ if(v[property] != null) {
+ return v[property];
+ }
+ }
+ if(Reflect.field(this.q,"expr")) {
+ var f = Reflect.field(this.q,"expr");
+ if(!Reflect.field(this.q,"show")) {
+ if(Reflect.field(f,"!=") != null && testprop((value == null ? "null" : "" + value) == Std.string(Reflect.field(f,"!="))) && exclude) {
+ ++qualify;
+ }
+ } else {
+ if(Reflect.field(f,"*") != null && testprop(parseFloat(value) != null)) {
+ ++qualify;
+ }
+ if(Reflect.field(f,">") != null && testprop(parseFloat(value) >= parseFloat(Reflect.field(f,">")))) {
+ ++qualify;
+ }
+ if(Reflect.field(f,"<") != null && testprop(parseFloat(value) <= parseFloat(Reflect.field(f,"<")))) {
+ ++qualify;
+ }
+ if(Reflect.field(f,"=") != null && (testprop(value == Reflect.field(f,"=")) || testprop(parseFloat(value) == parseFloat(Reflect.field(f,"="))))) {
+ ++qualify;
+ }
+ }
+ }
+ return qualify > 0;
+ }
+};
+var xrfragment_Parser = $hx_exports["xrfragment"]["Parser"] = function() { };
+xrfragment_Parser.__name__ = true;
+xrfragment_Parser.parse = function(key,value,store,index) {
+ var Frag_h = Object.create(null);
+ Frag_h["#"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_PREDEFINED_VIEW | xrfragment_XRF.PV_EXECUTE;
+ Frag_h["src"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_URL;
+ Frag_h["href"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_URL | xrfragment_XRF.T_PREDEFINED_VIEW;
+ Frag_h["tag"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["pos"] = xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_VECTOR3 | xrfragment_XRF.T_STRING | xrfragment_XRF.T_STRING_OBJ | xrfragment_XRF.METADATA | xrfragment_XRF.NAVIGATOR;
+ Frag_h["rot"] = xrfragment_XRF.QUERY_OPERATOR | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_VECTOR3 | xrfragment_XRF.METADATA | xrfragment_XRF.NAVIGATOR;
+ Frag_h["t"] = xrfragment_XRF.ASSET | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_FLOAT | xrfragment_XRF.T_VECTOR2 | xrfragment_XRF.T_STRING | xrfragment_XRF.NAVIGATOR | xrfragment_XRF.METADATA;
+ Frag_h["tv"] = xrfragment_XRF.ASSET | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_FLOAT | xrfragment_XRF.T_VECTOR2 | xrfragment_XRF.T_VECTOR3 | xrfragment_XRF.NAVIGATOR | xrfragment_XRF.METADATA;
+ Frag_h["namespace"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["SPDX"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["unit"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["description"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["session"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_URL | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.NAVIGATOR | xrfragment_XRF.METADATA | xrfragment_XRF.PROMPT;
+ var keyStripped = key.replace(xrfragment_XRF.operators.r,"");
+ var isPVDynamic = key.length > 0 && !Object.prototype.hasOwnProperty.call(Frag_h,key);
+ var isPVDefault = value.length == 0 && key.length > 0 && key == "#";
+ if(isPVDynamic) {
+ var v = new xrfragment_XRF(key,xrfragment_XRF.PV_EXECUTE | xrfragment_XRF.NAVIGATOR,index);
+ v.validate(value);
+ store[keyStripped] = v;
+ return true;
+ }
+ var v = new xrfragment_XRF(key,Frag_h[key],index);
+ if(Object.prototype.hasOwnProperty.call(Frag_h,key)) {
+ if(!v.validate(value)) {
+ console.log("src/xrfragment/Parser.hx:66:","⚠ fragment '" + key + "' has incompatible value (" + value + ")");
+ return false;
+ }
+ store[keyStripped] = v;
+ if(xrfragment_Parser.debug) {
+ console.log("src/xrfragment/Parser.hx:70:","✔ " + key + ": " + v.string);
+ }
+ } else {
+ if(typeof(value) == "string") {
+ v.guessType(v,value);
+ }
+ v.noXRF = true;
+ store[keyStripped] = v;
+ }
+ return true;
+};
+var xrfragment_URI = $hx_exports["xrfragment"]["URI"] = function() { };
+xrfragment_URI.__name__ = true;
+xrfragment_URI.parse = function(url,filter) {
+ var store = { };
+ if(url == null || url.indexOf("#") == -1) {
+ return store;
+ }
+ var fragment = url.split("#");
+ var splitArray = fragment[1].split("&");
+ var _g = 0;
+ var _g1 = splitArray.length;
+ while(_g < _g1) {
+ var i = _g++;
+ var splitByEqual = splitArray[i].split("=");
+ var regexPlus = new EReg("\\+","g");
+ var key = splitByEqual[0];
+ var value = "";
+ if(splitByEqual.length > 1) {
+ var s = regexPlus.split(splitByEqual[1]).join(" ");
+ value = decodeURIComponent(s.split("+").join(" "));
+ }
+ var ok = xrfragment_Parser.parse(key,value,store,i);
+ }
+ if(filter != null && filter != 0) {
+ var _g = 0;
+ var _g1 = Reflect.fields(store);
+ while(_g < _g1.length) {
+ var key = _g1[_g];
+ ++_g;
+ var xrf = store[key];
+ if(!xrf.is(filter)) {
+ Reflect.deleteField(store,key);
+ }
+ }
+ }
+ return store;
+};
+var xrfragment_XRF = $hx_exports["xrfragment"]["XRF"] = function(_fragment,_flags,_index) {
+ this.fragment = _fragment;
+ this.flags = _flags;
+ this.index = _index;
+};
+xrfragment_XRF.__name__ = true;
+xrfragment_XRF.set = function(flag,flags) {
+ return flags | flag;
+};
+xrfragment_XRF.unset = function(flag,flags) {
+ return flags & ~flag;
+};
+xrfragment_XRF.prototype = {
+ is: function(flag) {
+ var v = this.flags;
+ if(!(typeof(v) == "number" && ((v | 0) === v))) {
+ this.flags = 0;
+ }
+ return (this.flags & flag) != 0;
+ }
+ ,validate: function(value) {
+ this.guessType(this,value);
+ var ok = true;
+ if(!this.is(xrfragment_XRF.T_FLOAT) && this.is(xrfragment_XRF.T_VECTOR2) && !(typeof(this.x) == "number" && typeof(this.y) == "number")) {
+ ok = false;
+ }
+ if(!(this.is(xrfragment_XRF.T_VECTOR2) || this.is(xrfragment_XRF.T_STRING)) && this.is(xrfragment_XRF.T_VECTOR3) && !(typeof(this.x) == "number" && typeof(this.y) == "number" && typeof(this.z) == "number")) {
+ ok = false;
+ }
+ return ok;
+ }
+ ,guessType: function(v,str) {
+ v.string = str;
+ if(typeof(str) != "string") {
+ return;
+ }
+ if(str.length > 0) {
+ if(str.split(",").length > 1) {
+ var xyzw = str.split(",");
+ if(xyzw.length > 0) {
+ v.x = parseFloat(xyzw[0]);
+ }
+ if(xyzw.length > 1) {
+ v.y = parseFloat(xyzw[1]);
+ }
+ if(xyzw.length > 2) {
+ v.z = parseFloat(xyzw[2]);
+ }
+ if(xyzw.length > 3) {
+ v.w = parseFloat(xyzw[3]);
+ }
+ }
+ if(xrfragment_XRF.isColor.match(str)) {
+ v.color = str;
+ }
+ if(xrfragment_XRF.isFloat.match(str)) {
+ v.x = parseFloat(str);
+ v.float = v.x;
+ }
+ if(xrfragment_XRF.isInt.match(str)) {
+ v.int = Std.parseInt(str);
+ v.x = v.int;
+ }
+ v.filter = new xrfragment_Filter(v.fragment + "=" + v.string);
+ } else {
+ v.filter = new xrfragment_Filter(v.fragment);
+ }
+ }
+};
+if(typeof(performance) != "undefined" ? typeof(performance.now) == "function" : false) {
+ HxOverrides.now = performance.now.bind(performance);
+}
+String.__name__ = true;
+Array.__name__ = true;
+js_Boot.__toStr = ({ }).toString;
+xrfragment_Parser.error = "";
+xrfragment_Parser.debug = false;
+xrfragment_XRF.ASSET = 1;
+xrfragment_XRF.PROP_BIND = 2;
+xrfragment_XRF.QUERY_OPERATOR = 4;
+xrfragment_XRF.PROMPT = 8;
+xrfragment_XRF.ROUNDROBIN = 16;
+xrfragment_XRF.NAVIGATOR = 32;
+xrfragment_XRF.METADATA = 64;
+xrfragment_XRF.PV_OVERRIDE = 128;
+xrfragment_XRF.PV_EXECUTE = 256;
+xrfragment_XRF.T_COLOR = 8192;
+xrfragment_XRF.T_INT = 16384;
+xrfragment_XRF.T_FLOAT = 32768;
+xrfragment_XRF.T_VECTOR2 = 65536;
+xrfragment_XRF.T_VECTOR3 = 131072;
+xrfragment_XRF.T_URL = 262144;
+xrfragment_XRF.T_PREDEFINED_VIEW = 524288;
+xrfragment_XRF.T_STRING = 1048576;
+xrfragment_XRF.T_STRING_OBJ = 2097152;
+xrfragment_XRF.T_STRING_OBJ_PROP = 4194304;
+xrfragment_XRF.isColor = new EReg("^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$","");
+xrfragment_XRF.isInt = new EReg("^[-0-9]+$","");
+xrfragment_XRF.isFloat = new EReg("^[-0-9]+\\.[0-9]+$","");
+xrfragment_XRF.isVector = new EReg("([,]+|\\w)","");
+xrfragment_XRF.isUrl = new EReg("(://)?\\..*","");
+xrfragment_XRF.isUrlOrPretypedView = new EReg("(^#|://)?\\..*","");
+xrfragment_XRF.isString = new EReg(".*","");
+xrfragment_XRF.operators = new EReg("(^-|[\\*]+)","");
+xrfragment_XRF.isProp = new EReg("^.*=[><=]?","");
+xrfragment_XRF.isExclude = new EReg("^-","");
+xrfragment_XRF.isDeep = new EReg("\\*","");
+xrfragment_XRF.isNumber = new EReg("^[0-9\\.]+$","");
+})({});
+var xrfragment = $hx_exports["xrfragment"];
+export default xrfragment;
+var $hx_exports = typeof exports != "undefined" ? exports : typeof window != "undefined" ? window : typeof self != "undefined" ? self : this;
+(function ($global) { "use strict";
+$hx_exports["xrfragment"] = $hx_exports["xrfragment"] || {};
+var EReg = function(r,opt) {
+ this.r = new RegExp(r,opt.split("u").join(""));
+};
+EReg.__name__ = true;
+EReg.prototype = {
+ match: function(s) {
+ if(this.r.global) {
+ this.r.lastIndex = 0;
+ }
+ this.r.m = this.r.exec(s);
+ this.r.s = s;
+ return this.r.m != null;
+ }
+ ,split: function(s) {
+ var d = "#__delim__#";
+ return s.replace(this.r,d).split(d);
+ }
+};
+var HxOverrides = function() { };
+HxOverrides.__name__ = true;
+HxOverrides.cca = function(s,index) {
+ var x = s.charCodeAt(index);
+ if(x != x) {
+ return undefined;
+ }
+ return x;
+};
+HxOverrides.substr = function(s,pos,len) {
+ if(len == null) {
+ len = s.length;
+ } else if(len < 0) {
+ if(pos == 0) {
+ len = s.length + len;
+ } else {
+ return "";
+ }
+ }
+ return s.substr(pos,len);
+};
+HxOverrides.now = function() {
+ return Date.now();
+};
+Math.__name__ = true;
+var Reflect = function() { };
+Reflect.__name__ = true;
+Reflect.field = function(o,field) {
+ try {
+ return o[field];
+ } catch( _g ) {
+ return null;
+ }
+};
+Reflect.fields = function(o) {
+ var a = [];
+ if(o != null) {
+ var hasOwnProperty = Object.prototype.hasOwnProperty;
+ for( var f in o ) {
+ if(f != "__id__" && f != "hx__closures__" && hasOwnProperty.call(o,f)) {
+ a.push(f);
+ }
+ }
+ }
+ return a;
+};
+Reflect.deleteField = function(o,field) {
+ if(!Object.prototype.hasOwnProperty.call(o,field)) {
+ return false;
+ }
+ delete(o[field]);
+ return true;
+};
+Reflect.copy = function(o) {
+ if(o == null) {
+ return null;
+ }
+ var o2 = { };
+ var _g = 0;
+ var _g1 = Reflect.fields(o);
+ while(_g < _g1.length) {
+ var f = _g1[_g];
+ ++_g;
+ o2[f] = Reflect.field(o,f);
+ }
+ return o2;
+};
+var Std = function() { };
+Std.__name__ = true;
+Std.string = function(s) {
+ return js_Boot.__string_rec(s,"");
+};
+Std.parseInt = function(x) {
+ if(x != null) {
+ var _g = 0;
+ var _g1 = x.length;
+ while(_g < _g1) {
+ var i = _g++;
+ var c = x.charCodeAt(i);
+ if(c <= 8 || c >= 14 && c != 32 && c != 45) {
+ var nc = x.charCodeAt(i + 1);
+ var v = parseInt(x,nc == 120 || nc == 88 ? 16 : 10);
+ if(isNaN(v)) {
+ return null;
+ } else {
+ return v;
+ }
+ }
+ }
+ }
+ return null;
+};
+var StringTools = function() { };
+StringTools.__name__ = true;
+StringTools.isSpace = function(s,pos) {
+ var c = HxOverrides.cca(s,pos);
+ if(!(c > 8 && c < 14)) {
+ return c == 32;
+ } else {
+ return true;
+ }
+};
+StringTools.ltrim = function(s) {
+ var l = s.length;
+ var r = 0;
+ while(r < l && StringTools.isSpace(s,r)) ++r;
+ if(r > 0) {
+ return HxOverrides.substr(s,r,l - r);
+ } else {
+ return s;
+ }
+};
+StringTools.rtrim = function(s) {
+ var l = s.length;
+ var r = 0;
+ while(r < l && StringTools.isSpace(s,l - r - 1)) ++r;
+ if(r > 0) {
+ return HxOverrides.substr(s,0,l - r);
+ } else {
+ return s;
+ }
+};
+StringTools.trim = function(s) {
+ return StringTools.ltrim(StringTools.rtrim(s));
+};
+var haxe_iterators_ArrayIterator = function(array) {
+ this.current = 0;
+ this.array = array;
+};
+haxe_iterators_ArrayIterator.__name__ = true;
+haxe_iterators_ArrayIterator.prototype = {
+ hasNext: function() {
+ return this.current < this.array.length;
+ }
+ ,next: function() {
+ return this.array[this.current++];
+ }
+};
+var js_Boot = function() { };
+js_Boot.__name__ = true;
+js_Boot.__string_rec = function(o,s) {
+ if(o == null) {
+ return "null";
+ }
+ if(s.length >= 5) {
+ return "<...>";
+ }
+ var t = typeof(o);
+ if(t == "function" && (o.__name__ || o.__ename__)) {
+ t = "object";
+ }
+ switch(t) {
+ case "function":
+ return "";
+ case "object":
+ if(((o) instanceof Array)) {
+ var str = "[";
+ s += "\t";
+ var _g = 0;
+ var _g1 = o.length;
+ while(_g < _g1) {
+ var i = _g++;
+ str += (i > 0 ? "," : "") + js_Boot.__string_rec(o[i],s);
+ }
+ str += "]";
+ return str;
+ }
+ var tostr;
+ try {
+ tostr = o.toString;
+ } catch( _g ) {
+ return "???";
+ }
+ if(tostr != null && tostr != Object.toString && typeof(tostr) == "function") {
+ var s2 = o.toString();
+ if(s2 != "[object Object]") {
+ return s2;
+ }
+ }
+ var str = "{\n";
+ s += "\t";
+ var hasp = o.hasOwnProperty != null;
+ var k = null;
+ for( k in o ) {
+ if(hasp && !o.hasOwnProperty(k)) {
+ continue;
+ }
+ if(k == "prototype" || k == "__class__" || k == "__super__" || k == "__interfaces__" || k == "__properties__") {
+ continue;
+ }
+ if(str.length != 2) {
+ str += ", \n";
+ }
+ str += s + k + " : " + js_Boot.__string_rec(o[k],s);
+ }
+ s = s.substring(1);
+ str += "\n" + s + "}";
+ return str;
+ case "string":
+ return o;
+ default:
+ return String(o);
+ }
+};
+var xrfragment_Filter = $hx_exports["xrfragment"]["Filter"] = function(str) {
+ this.q = { };
+ this.str = "";
+ if(str != null) {
+ this.parse(str);
+ }
+};
+xrfragment_Filter.__name__ = true;
+xrfragment_Filter.prototype = {
+ toObject: function() {
+ return Reflect.copy(this.q);
+ }
+ ,get: function() {
+ return Reflect.copy(this.q);
+ }
+ ,parse: function(str) {
+ var token = str.split(" ");
+ var q = { };
+ var process = function(str,prefix) {
+ if(prefix == null) {
+ prefix = "";
+ }
+ str = StringTools.trim(str);
+ var k = str.split("=")[0];
+ var v = str.split("=")[1];
+ var filter = { };
+ if(q[prefix + k]) {
+ filter = q[prefix + k];
+ }
+ if(xrfragment_XRF.isProp.match(str)) {
+ var oper = "";
+ if(str.indexOf(">") != -1) {
+ oper = ">";
+ }
+ if(str.indexOf("<") != -1) {
+ oper = "<";
+ }
+ if(xrfragment_XRF.isExclude.match(k)) {
+ k = HxOverrides.substr(k,1,null);
+ }
+ v = HxOverrides.substr(v,oper.length,null);
+ if(oper.length == 0) {
+ oper = "=";
+ }
+ var rule = { };
+ if(xrfragment_XRF.isNumber.match(v)) {
+ rule[oper] = parseFloat(v);
+ } else {
+ rule[oper] = v;
+ }
+ q["expr"] = rule;
+ }
+ var value = xrfragment_XRF.isDeep.match(str) ? k.split("*").length - 1 : 0;
+ q["deep"] = value;
+ var value = xrfragment_XRF.isExclude.match(str) ? false : true;
+ q["show"] = value;
+ var value = k.replace(xrfragment_XRF.operators.r,"");
+ q["key"] = value;
+ q["value"] = v;
+ };
+ var _g = 0;
+ var _g1 = token.length;
+ while(_g < _g1) {
+ var i = _g++;
+ process(token[i]);
+ }
+ return this.q = q;
+ }
+ ,test: function(obj) {
+ var qualify = false;
+ var _g = 0;
+ var _g1 = Reflect.fields(obj);
+ while(_g < _g1.length) {
+ var k = _g1[_g];
+ ++_g;
+ var v = Std.string(Reflect.field(obj,k));
+ if(this.testProperty(k,v)) {
+ qualify = true;
+ }
+ }
+ var _g = 0;
+ var _g1 = Reflect.fields(obj);
+ while(_g < _g1.length) {
+ var k = _g1[_g];
+ ++_g;
+ var v = Std.string(Reflect.field(obj,k));
+ if(this.testProperty(k,v,true)) {
+ qualify = false;
+ }
+ }
+ return qualify;
+ }
+ ,testProperty: function(property,value,exclude) {
+ var conds = 0;
+ var fails = 0;
+ var qualify = 0;
+ var testprop = function(expr) {
+ conds += 1;
+ fails += expr ? 0 : 1;
+ return expr;
+ };
+ if(this.q[value] != null) {
+ var v = this.q[value];
+ if(v[property] != null) {
+ return v[property];
+ }
+ }
+ if(Reflect.field(this.q,"expr")) {
+ var f = Reflect.field(this.q,"expr");
+ if(!Reflect.field(this.q,"show")) {
+ if(Reflect.field(f,"!=") != null && testprop((value == null ? "null" : "" + value) == Std.string(Reflect.field(f,"!="))) && exclude) {
+ ++qualify;
+ }
+ } else {
+ if(Reflect.field(f,"*") != null && testprop(parseFloat(value) != null)) {
+ ++qualify;
+ }
+ if(Reflect.field(f,">") != null && testprop(parseFloat(value) >= parseFloat(Reflect.field(f,">")))) {
+ ++qualify;
+ }
+ if(Reflect.field(f,"<") != null && testprop(parseFloat(value) <= parseFloat(Reflect.field(f,"<")))) {
+ ++qualify;
+ }
+ if(Reflect.field(f,"=") != null && (testprop(value == Reflect.field(f,"=")) || testprop(parseFloat(value) == parseFloat(Reflect.field(f,"="))))) {
+ ++qualify;
+ }
+ }
+ }
+ return qualify > 0;
+ }
+};
+var xrfragment_Parser = $hx_exports["xrfragment"]["Parser"] = function() { };
+xrfragment_Parser.__name__ = true;
+xrfragment_Parser.parse = function(key,value,store,index) {
+ var Frag_h = Object.create(null);
+ Frag_h["#"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_PREDEFINED_VIEW | xrfragment_XRF.PV_EXECUTE;
+ Frag_h["src"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_URL;
+ Frag_h["href"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_URL | xrfragment_XRF.T_PREDEFINED_VIEW;
+ Frag_h["tag"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["pos"] = xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_VECTOR3 | xrfragment_XRF.T_STRING | xrfragment_XRF.T_STRING_OBJ | xrfragment_XRF.METADATA | xrfragment_XRF.NAVIGATOR;
+ Frag_h["rot"] = xrfragment_XRF.QUERY_OPERATOR | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_VECTOR3 | xrfragment_XRF.METADATA | xrfragment_XRF.NAVIGATOR;
+ Frag_h["t"] = xrfragment_XRF.ASSET | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_FLOAT | xrfragment_XRF.T_VECTOR2 | xrfragment_XRF.T_STRING | xrfragment_XRF.NAVIGATOR | xrfragment_XRF.METADATA;
+ Frag_h["tv"] = xrfragment_XRF.ASSET | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_FLOAT | xrfragment_XRF.T_VECTOR2 | xrfragment_XRF.T_VECTOR3 | xrfragment_XRF.NAVIGATOR | xrfragment_XRF.METADATA;
+ Frag_h["namespace"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["SPDX"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["unit"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["description"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["session"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_URL | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.NAVIGATOR | xrfragment_XRF.METADATA | xrfragment_XRF.PROMPT;
+ var keyStripped = key.replace(xrfragment_XRF.operators.r,"");
+ var isPVDynamic = key.length > 0 && !Object.prototype.hasOwnProperty.call(Frag_h,key);
+ var isPVDefault = value.length == 0 && key.length > 0 && key == "#";
+ if(isPVDynamic) {
+ var v = new xrfragment_XRF(key,xrfragment_XRF.PV_EXECUTE | xrfragment_XRF.NAVIGATOR,index);
+ v.validate(value);
+ store[keyStripped] = v;
+ return true;
+ }
+ var v = new xrfragment_XRF(key,Frag_h[key],index);
+ if(Object.prototype.hasOwnProperty.call(Frag_h,key)) {
+ if(!v.validate(value)) {
+ console.log("src/xrfragment/Parser.hx:66:","⚠ fragment '" + key + "' has incompatible value (" + value + ")");
+ return false;
+ }
+ store[keyStripped] = v;
+ if(xrfragment_Parser.debug) {
+ console.log("src/xrfragment/Parser.hx:70:","✔ " + key + ": " + v.string);
+ }
+ } else {
+ if(typeof(value) == "string") {
+ v.guessType(v,value);
+ }
+ v.noXRF = true;
+ store[keyStripped] = v;
+ }
+ return true;
+};
+var xrfragment_URI = $hx_exports["xrfragment"]["URI"] = function() { };
+xrfragment_URI.__name__ = true;
+xrfragment_URI.parse = function(url,filter) {
+ var store = { };
+ if(url == null || url.indexOf("#") == -1) {
+ return store;
+ }
+ var fragment = url.split("#");
+ var splitArray = fragment[1].split("&");
+ var _g = 0;
+ var _g1 = splitArray.length;
+ while(_g < _g1) {
+ var i = _g++;
+ var splitByEqual = splitArray[i].split("=");
+ var regexPlus = new EReg("\\+","g");
+ var key = splitByEqual[0];
+ var value = "";
+ if(splitByEqual.length > 1) {
+ var s = regexPlus.split(splitByEqual[1]).join(" ");
+ value = decodeURIComponent(s.split("+").join(" "));
+ }
+ var ok = xrfragment_Parser.parse(key,value,store,i);
+ }
+ if(filter != null && filter != 0) {
+ var _g = 0;
+ var _g1 = Reflect.fields(store);
+ while(_g < _g1.length) {
+ var key = _g1[_g];
+ ++_g;
+ var xrf = store[key];
+ if(!xrf.is(filter)) {
+ Reflect.deleteField(store,key);
+ }
+ }
+ }
+ return store;
+};
+var xrfragment_XRF = $hx_exports["xrfragment"]["XRF"] = function(_fragment,_flags,_index) {
+ this.fragment = _fragment;
+ this.flags = _flags;
+ this.index = _index;
+};
+xrfragment_XRF.__name__ = true;
+xrfragment_XRF.set = function(flag,flags) {
+ return flags | flag;
+};
+xrfragment_XRF.unset = function(flag,flags) {
+ return flags & ~flag;
+};
+xrfragment_XRF.prototype = {
+ is: function(flag) {
+ var v = this.flags;
+ if(!(typeof(v) == "number" && ((v | 0) === v))) {
+ this.flags = 0;
+ }
+ return (this.flags & flag) != 0;
+ }
+ ,validate: function(value) {
+ this.guessType(this,value);
+ var ok = true;
+ if(!this.is(xrfragment_XRF.T_FLOAT) && this.is(xrfragment_XRF.T_VECTOR2) && !(typeof(this.x) == "number" && typeof(this.y) == "number")) {
+ ok = false;
+ }
+ if(!(this.is(xrfragment_XRF.T_VECTOR2) || this.is(xrfragment_XRF.T_STRING)) && this.is(xrfragment_XRF.T_VECTOR3) && !(typeof(this.x) == "number" && typeof(this.y) == "number" && typeof(this.z) == "number")) {
+ ok = false;
+ }
+ return ok;
+ }
+ ,guessType: function(v,str) {
+ v.string = str;
+ if(typeof(str) != "string") {
+ return;
+ }
+ if(str.length > 0) {
+ if(str.split(",").length > 1) {
+ var xyzw = str.split(",");
+ if(xyzw.length > 0) {
+ v.x = parseFloat(xyzw[0]);
+ }
+ if(xyzw.length > 1) {
+ v.y = parseFloat(xyzw[1]);
+ }
+ if(xyzw.length > 2) {
+ v.z = parseFloat(xyzw[2]);
+ }
+ if(xyzw.length > 3) {
+ v.w = parseFloat(xyzw[3]);
+ }
+ }
+ if(xrfragment_XRF.isColor.match(str)) {
+ v.color = str;
+ }
+ if(xrfragment_XRF.isFloat.match(str)) {
+ v.x = parseFloat(str);
+ v.float = v.x;
+ }
+ if(xrfragment_XRF.isInt.match(str)) {
+ v.int = Std.parseInt(str);
+ v.x = v.int;
+ }
+ v.filter = new xrfragment_Filter(v.fragment + "=" + v.string);
+ } else {
+ v.filter = new xrfragment_Filter(v.fragment);
+ }
+ }
+};
+if(typeof(performance) != "undefined" ? typeof(performance.now) == "function" : false) {
+ HxOverrides.now = performance.now.bind(performance);
+}
+String.__name__ = true;
+Array.__name__ = true;
+js_Boot.__toStr = ({ }).toString;
+xrfragment_Parser.error = "";
+xrfragment_Parser.debug = false;
+xrfragment_XRF.ASSET = 1;
+xrfragment_XRF.PROP_BIND = 2;
+xrfragment_XRF.QUERY_OPERATOR = 4;
+xrfragment_XRF.PROMPT = 8;
+xrfragment_XRF.ROUNDROBIN = 16;
+xrfragment_XRF.NAVIGATOR = 32;
+xrfragment_XRF.METADATA = 64;
+xrfragment_XRF.PV_OVERRIDE = 128;
+xrfragment_XRF.PV_EXECUTE = 256;
+xrfragment_XRF.T_COLOR = 8192;
+xrfragment_XRF.T_INT = 16384;
+xrfragment_XRF.T_FLOAT = 32768;
+xrfragment_XRF.T_VECTOR2 = 65536;
+xrfragment_XRF.T_VECTOR3 = 131072;
+xrfragment_XRF.T_URL = 262144;
+xrfragment_XRF.T_PREDEFINED_VIEW = 524288;
+xrfragment_XRF.T_STRING = 1048576;
+xrfragment_XRF.T_STRING_OBJ = 2097152;
+xrfragment_XRF.T_STRING_OBJ_PROP = 4194304;
+xrfragment_XRF.isColor = new EReg("^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$","");
+xrfragment_XRF.isInt = new EReg("^[-0-9]+$","");
+xrfragment_XRF.isFloat = new EReg("^[-0-9]+\\.[0-9]+$","");
+xrfragment_XRF.isVector = new EReg("([,]+|\\w)","");
+xrfragment_XRF.isUrl = new EReg("(://)?\\..*","");
+xrfragment_XRF.isUrlOrPretypedView = new EReg("(^#|://)?\\..*","");
+xrfragment_XRF.isString = new EReg(".*","");
+xrfragment_XRF.operators = new EReg("(^-|[\\*]+)","");
+xrfragment_XRF.isProp = new EReg("^.*=[><=]?","");
+xrfragment_XRF.isExclude = new EReg("^-","");
+xrfragment_XRF.isDeep = new EReg("\\*","");
+xrfragment_XRF.isNumber = new EReg("^[0-9\\.]+$","");
+})({});
+var xrfragment = $hx_exports["xrfragment"];
+export default xrfragment;
+var $hx_exports = typeof exports != "undefined" ? exports : typeof window != "undefined" ? window : typeof self != "undefined" ? self : this;
+(function ($global) { "use strict";
+$hx_exports["xrfragment"] = $hx_exports["xrfragment"] || {};
+var EReg = function(r,opt) {
+ this.r = new RegExp(r,opt.split("u").join(""));
+};
+EReg.__name__ = true;
+EReg.prototype = {
+ match: function(s) {
+ if(this.r.global) {
+ this.r.lastIndex = 0;
+ }
+ this.r.m = this.r.exec(s);
+ this.r.s = s;
+ return this.r.m != null;
+ }
+ ,split: function(s) {
+ var d = "#__delim__#";
+ return s.replace(this.r,d).split(d);
+ }
+};
+var HxOverrides = function() { };
+HxOverrides.__name__ = true;
+HxOverrides.cca = function(s,index) {
+ var x = s.charCodeAt(index);
+ if(x != x) {
+ return undefined;
+ }
+ return x;
+};
+HxOverrides.substr = function(s,pos,len) {
+ if(len == null) {
+ len = s.length;
+ } else if(len < 0) {
+ if(pos == 0) {
+ len = s.length + len;
+ } else {
+ return "";
+ }
+ }
+ return s.substr(pos,len);
+};
+HxOverrides.now = function() {
+ return Date.now();
+};
+Math.__name__ = true;
+var Reflect = function() { };
+Reflect.__name__ = true;
+Reflect.field = function(o,field) {
+ try {
+ return o[field];
+ } catch( _g ) {
+ return null;
+ }
+};
+Reflect.fields = function(o) {
+ var a = [];
+ if(o != null) {
+ var hasOwnProperty = Object.prototype.hasOwnProperty;
+ for( var f in o ) {
+ if(f != "__id__" && f != "hx__closures__" && hasOwnProperty.call(o,f)) {
+ a.push(f);
+ }
+ }
+ }
+ return a;
+};
+Reflect.deleteField = function(o,field) {
+ if(!Object.prototype.hasOwnProperty.call(o,field)) {
+ return false;
+ }
+ delete(o[field]);
+ return true;
+};
+Reflect.copy = function(o) {
+ if(o == null) {
+ return null;
+ }
+ var o2 = { };
+ var _g = 0;
+ var _g1 = Reflect.fields(o);
+ while(_g < _g1.length) {
+ var f = _g1[_g];
+ ++_g;
+ o2[f] = Reflect.field(o,f);
+ }
+ return o2;
+};
+var Std = function() { };
+Std.__name__ = true;
+Std.string = function(s) {
+ return js_Boot.__string_rec(s,"");
+};
+Std.parseInt = function(x) {
+ if(x != null) {
+ var _g = 0;
+ var _g1 = x.length;
+ while(_g < _g1) {
+ var i = _g++;
+ var c = x.charCodeAt(i);
+ if(c <= 8 || c >= 14 && c != 32 && c != 45) {
+ var nc = x.charCodeAt(i + 1);
+ var v = parseInt(x,nc == 120 || nc == 88 ? 16 : 10);
+ if(isNaN(v)) {
+ return null;
+ } else {
+ return v;
+ }
+ }
+ }
+ }
+ return null;
+};
+var StringTools = function() { };
+StringTools.__name__ = true;
+StringTools.isSpace = function(s,pos) {
+ var c = HxOverrides.cca(s,pos);
+ if(!(c > 8 && c < 14)) {
+ return c == 32;
+ } else {
+ return true;
+ }
+};
+StringTools.ltrim = function(s) {
+ var l = s.length;
+ var r = 0;
+ while(r < l && StringTools.isSpace(s,r)) ++r;
+ if(r > 0) {
+ return HxOverrides.substr(s,r,l - r);
+ } else {
+ return s;
+ }
+};
+StringTools.rtrim = function(s) {
+ var l = s.length;
+ var r = 0;
+ while(r < l && StringTools.isSpace(s,l - r - 1)) ++r;
+ if(r > 0) {
+ return HxOverrides.substr(s,0,l - r);
+ } else {
+ return s;
+ }
+};
+StringTools.trim = function(s) {
+ return StringTools.ltrim(StringTools.rtrim(s));
+};
+var haxe_iterators_ArrayIterator = function(array) {
+ this.current = 0;
+ this.array = array;
+};
+haxe_iterators_ArrayIterator.__name__ = true;
+haxe_iterators_ArrayIterator.prototype = {
+ hasNext: function() {
+ return this.current < this.array.length;
+ }
+ ,next: function() {
+ return this.array[this.current++];
+ }
+};
+var js_Boot = function() { };
+js_Boot.__name__ = true;
+js_Boot.__string_rec = function(o,s) {
+ if(o == null) {
+ return "null";
+ }
+ if(s.length >= 5) {
+ return "<...>";
+ }
+ var t = typeof(o);
+ if(t == "function" && (o.__name__ || o.__ename__)) {
+ t = "object";
+ }
+ switch(t) {
+ case "function":
+ return "";
+ case "object":
+ if(((o) instanceof Array)) {
+ var str = "[";
+ s += "\t";
+ var _g = 0;
+ var _g1 = o.length;
+ while(_g < _g1) {
+ var i = _g++;
+ str += (i > 0 ? "," : "") + js_Boot.__string_rec(o[i],s);
+ }
+ str += "]";
+ return str;
+ }
+ var tostr;
+ try {
+ tostr = o.toString;
+ } catch( _g ) {
+ return "???";
+ }
+ if(tostr != null && tostr != Object.toString && typeof(tostr) == "function") {
+ var s2 = o.toString();
+ if(s2 != "[object Object]") {
+ return s2;
+ }
+ }
+ var str = "{\n";
+ s += "\t";
+ var hasp = o.hasOwnProperty != null;
+ var k = null;
+ for( k in o ) {
+ if(hasp && !o.hasOwnProperty(k)) {
+ continue;
+ }
+ if(k == "prototype" || k == "__class__" || k == "__super__" || k == "__interfaces__" || k == "__properties__") {
+ continue;
+ }
+ if(str.length != 2) {
+ str += ", \n";
+ }
+ str += s + k + " : " + js_Boot.__string_rec(o[k],s);
+ }
+ s = s.substring(1);
+ str += "\n" + s + "}";
+ return str;
+ case "string":
+ return o;
+ default:
+ return String(o);
+ }
+};
+var xrfragment_Filter = $hx_exports["xrfragment"]["Filter"] = function(str) {
+ this.q = { };
+ this.str = "";
+ if(str != null) {
+ this.parse(str);
+ }
+};
+xrfragment_Filter.__name__ = true;
+xrfragment_Filter.prototype = {
+ toObject: function() {
+ return Reflect.copy(this.q);
+ }
+ ,get: function() {
+ return Reflect.copy(this.q);
+ }
+ ,parse: function(str) {
+ var token = str.split(" ");
+ var q = { };
+ var process = function(str,prefix) {
+ if(prefix == null) {
+ prefix = "";
+ }
+ str = StringTools.trim(str);
+ var k = str.split("=")[0];
+ var v = str.split("=")[1];
+ var filter = { };
+ if(q[prefix + k]) {
+ filter = q[prefix + k];
+ }
+ if(xrfragment_XRF.isProp.match(str)) {
+ var oper = "";
+ if(str.indexOf(">") != -1) {
+ oper = ">";
+ }
+ if(str.indexOf("<") != -1) {
+ oper = "<";
+ }
+ if(xrfragment_XRF.isExclude.match(k)) {
+ k = HxOverrides.substr(k,1,null);
+ }
+ v = HxOverrides.substr(v,oper.length,null);
+ if(oper.length == 0) {
+ oper = "=";
+ }
+ var rule = { };
+ if(xrfragment_XRF.isNumber.match(v)) {
+ rule[oper] = parseFloat(v);
+ } else {
+ rule[oper] = v;
+ }
+ q["expr"] = rule;
+ }
+ var value = xrfragment_XRF.isDeep.match(str) ? k.split("*").length - 1 : 0;
+ q["deep"] = value;
+ var value = xrfragment_XRF.isExclude.match(str) ? false : true;
+ q["show"] = value;
+ var value = k.replace(xrfragment_XRF.operators.r,"");
+ q["key"] = value;
+ q["value"] = v;
+ };
+ var _g = 0;
+ var _g1 = token.length;
+ while(_g < _g1) {
+ var i = _g++;
+ process(token[i]);
+ }
+ return this.q = q;
+ }
+ ,test: function(obj) {
+ var qualify = false;
+ var _g = 0;
+ var _g1 = Reflect.fields(obj);
+ while(_g < _g1.length) {
+ var k = _g1[_g];
+ ++_g;
+ var v = Std.string(Reflect.field(obj,k));
+ if(this.testProperty(k,v)) {
+ qualify = true;
+ }
+ }
+ var _g = 0;
+ var _g1 = Reflect.fields(obj);
+ while(_g < _g1.length) {
+ var k = _g1[_g];
+ ++_g;
+ var v = Std.string(Reflect.field(obj,k));
+ if(this.testProperty(k,v,true)) {
+ qualify = false;
+ }
+ }
+ return qualify;
+ }
+ ,testProperty: function(property,value,exclude) {
+ var conds = 0;
+ var fails = 0;
+ var qualify = 0;
+ var testprop = function(expr) {
+ conds += 1;
+ fails += expr ? 0 : 1;
+ return expr;
+ };
+ if(this.q[value] != null) {
+ var v = this.q[value];
+ if(v[property] != null) {
+ return v[property];
+ }
+ }
+ if(Reflect.field(this.q,"expr")) {
+ var f = Reflect.field(this.q,"expr");
+ if(!Reflect.field(this.q,"show")) {
+ if(Reflect.field(f,"!=") != null && testprop((value == null ? "null" : "" + value) == Std.string(Reflect.field(f,"!="))) && exclude) {
+ ++qualify;
+ }
+ } else {
+ if(Reflect.field(f,"*") != null && testprop(parseFloat(value) != null)) {
+ ++qualify;
+ }
+ if(Reflect.field(f,">") != null && testprop(parseFloat(value) >= parseFloat(Reflect.field(f,">")))) {
+ ++qualify;
+ }
+ if(Reflect.field(f,"<") != null && testprop(parseFloat(value) <= parseFloat(Reflect.field(f,"<")))) {
+ ++qualify;
+ }
+ if(Reflect.field(f,"=") != null && (testprop(value == Reflect.field(f,"=")) || testprop(parseFloat(value) == parseFloat(Reflect.field(f,"="))))) {
+ ++qualify;
+ }
+ }
+ }
+ return qualify > 0;
+ }
+};
+var xrfragment_Parser = $hx_exports["xrfragment"]["Parser"] = function() { };
+xrfragment_Parser.__name__ = true;
+xrfragment_Parser.parse = function(key,value,store,index) {
+ var Frag_h = Object.create(null);
+ Frag_h["#"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_PREDEFINED_VIEW | xrfragment_XRF.PV_EXECUTE;
+ Frag_h["src"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_URL;
+ Frag_h["href"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_URL | xrfragment_XRF.T_PREDEFINED_VIEW;
+ Frag_h["tag"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["pos"] = xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_VECTOR3 | xrfragment_XRF.T_STRING | xrfragment_XRF.T_STRING_OBJ | xrfragment_XRF.METADATA | xrfragment_XRF.NAVIGATOR;
+ Frag_h["rot"] = xrfragment_XRF.QUERY_OPERATOR | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_VECTOR3 | xrfragment_XRF.METADATA | xrfragment_XRF.NAVIGATOR;
+ Frag_h["t"] = xrfragment_XRF.ASSET | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_FLOAT | xrfragment_XRF.T_VECTOR2 | xrfragment_XRF.T_STRING | xrfragment_XRF.NAVIGATOR | xrfragment_XRF.METADATA;
+ Frag_h["tv"] = xrfragment_XRF.ASSET | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_FLOAT | xrfragment_XRF.T_VECTOR2 | xrfragment_XRF.T_VECTOR3 | xrfragment_XRF.NAVIGATOR | xrfragment_XRF.METADATA;
+ Frag_h["namespace"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["SPDX"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["unit"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["description"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["session"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_URL | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.NAVIGATOR | xrfragment_XRF.METADATA | xrfragment_XRF.PROMPT;
+ var keyStripped = key.replace(xrfragment_XRF.operators.r,"");
+ var isPVDynamic = key.length > 0 && !Object.prototype.hasOwnProperty.call(Frag_h,key);
+ var isPVDefault = value.length == 0 && key.length > 0 && key == "#";
+ if(isPVDynamic) {
+ var v = new xrfragment_XRF(key,xrfragment_XRF.PV_EXECUTE | xrfragment_XRF.NAVIGATOR,index);
+ v.validate(value);
+ store[keyStripped] = v;
+ return true;
+ }
+ var v = new xrfragment_XRF(key,Frag_h[key],index);
+ if(Object.prototype.hasOwnProperty.call(Frag_h,key)) {
+ if(!v.validate(value)) {
+ console.log("src/xrfragment/Parser.hx:66:","⚠ fragment '" + key + "' has incompatible value (" + value + ")");
+ return false;
+ }
+ store[keyStripped] = v;
+ if(xrfragment_Parser.debug) {
+ console.log("src/xrfragment/Parser.hx:70:","✔ " + key + ": " + v.string);
+ }
+ } else {
+ if(typeof(value) == "string") {
+ v.guessType(v,value);
+ }
+ v.noXRF = true;
+ store[keyStripped] = v;
+ }
+ return true;
+};
+var xrfragment_URI = $hx_exports["xrfragment"]["URI"] = function() { };
+xrfragment_URI.__name__ = true;
+xrfragment_URI.parse = function(url,filter) {
+ var store = { };
+ if(url == null || url.indexOf("#") == -1) {
+ return store;
+ }
+ var fragment = url.split("#");
+ var splitArray = fragment[1].split("&");
+ var _g = 0;
+ var _g1 = splitArray.length;
+ while(_g < _g1) {
+ var i = _g++;
+ var splitByEqual = splitArray[i].split("=");
+ var regexPlus = new EReg("\\+","g");
+ var key = splitByEqual[0];
+ var value = "";
+ if(splitByEqual.length > 1) {
+ var s = regexPlus.split(splitByEqual[1]).join(" ");
+ value = decodeURIComponent(s.split("+").join(" "));
+ }
+ var ok = xrfragment_Parser.parse(key,value,store,i);
+ }
+ if(filter != null && filter != 0) {
+ var _g = 0;
+ var _g1 = Reflect.fields(store);
+ while(_g < _g1.length) {
+ var key = _g1[_g];
+ ++_g;
+ var xrf = store[key];
+ if(!xrf.is(filter)) {
+ Reflect.deleteField(store,key);
+ }
+ }
+ }
+ return store;
+};
+var xrfragment_XRF = $hx_exports["xrfragment"]["XRF"] = function(_fragment,_flags,_index) {
+ this.fragment = _fragment;
+ this.flags = _flags;
+ this.index = _index;
+};
+xrfragment_XRF.__name__ = true;
+xrfragment_XRF.set = function(flag,flags) {
+ return flags | flag;
+};
+xrfragment_XRF.unset = function(flag,flags) {
+ return flags & ~flag;
+};
+xrfragment_XRF.prototype = {
+ is: function(flag) {
+ var v = this.flags;
+ if(!(typeof(v) == "number" && ((v | 0) === v))) {
+ this.flags = 0;
+ }
+ return (this.flags & flag) != 0;
+ }
+ ,validate: function(value) {
+ this.guessType(this,value);
+ var ok = true;
+ if(!this.is(xrfragment_XRF.T_FLOAT) && this.is(xrfragment_XRF.T_VECTOR2) && !(typeof(this.x) == "number" && typeof(this.y) == "number")) {
+ ok = false;
+ }
+ if(!(this.is(xrfragment_XRF.T_VECTOR2) || this.is(xrfragment_XRF.T_STRING)) && this.is(xrfragment_XRF.T_VECTOR3) && !(typeof(this.x) == "number" && typeof(this.y) == "number" && typeof(this.z) == "number")) {
+ ok = false;
+ }
+ return ok;
+ }
+ ,guessType: function(v,str) {
+ v.string = str;
+ if(typeof(str) != "string") {
+ return;
+ }
+ if(str.length > 0) {
+ if(str.split(",").length > 1) {
+ var xyzw = str.split(",");
+ if(xyzw.length > 0) {
+ v.x = parseFloat(xyzw[0]);
+ }
+ if(xyzw.length > 1) {
+ v.y = parseFloat(xyzw[1]);
+ }
+ if(xyzw.length > 2) {
+ v.z = parseFloat(xyzw[2]);
+ }
+ if(xyzw.length > 3) {
+ v.w = parseFloat(xyzw[3]);
+ }
+ }
+ if(xrfragment_XRF.isColor.match(str)) {
+ v.color = str;
+ }
+ if(xrfragment_XRF.isFloat.match(str)) {
+ v.x = parseFloat(str);
+ v.float = v.x;
+ }
+ if(xrfragment_XRF.isInt.match(str)) {
+ v.int = Std.parseInt(str);
+ v.x = v.int;
+ }
+ v.filter = new xrfragment_Filter(v.fragment + "=" + v.string);
+ } else {
+ v.filter = new xrfragment_Filter(v.fragment);
+ }
+ }
+};
+if(typeof(performance) != "undefined" ? typeof(performance.now) == "function" : false) {
+ HxOverrides.now = performance.now.bind(performance);
+}
+String.__name__ = true;
+Array.__name__ = true;
+js_Boot.__toStr = ({ }).toString;
+xrfragment_Parser.error = "";
+xrfragment_Parser.debug = false;
+xrfragment_XRF.ASSET = 1;
+xrfragment_XRF.PROP_BIND = 2;
+xrfragment_XRF.QUERY_OPERATOR = 4;
+xrfragment_XRF.PROMPT = 8;
+xrfragment_XRF.ROUNDROBIN = 16;
+xrfragment_XRF.NAVIGATOR = 32;
+xrfragment_XRF.METADATA = 64;
+xrfragment_XRF.PV_OVERRIDE = 128;
+xrfragment_XRF.PV_EXECUTE = 256;
+xrfragment_XRF.T_COLOR = 8192;
+xrfragment_XRF.T_INT = 16384;
+xrfragment_XRF.T_FLOAT = 32768;
+xrfragment_XRF.T_VECTOR2 = 65536;
+xrfragment_XRF.T_VECTOR3 = 131072;
+xrfragment_XRF.T_URL = 262144;
+xrfragment_XRF.T_PREDEFINED_VIEW = 524288;
+xrfragment_XRF.T_STRING = 1048576;
+xrfragment_XRF.T_STRING_OBJ = 2097152;
+xrfragment_XRF.T_STRING_OBJ_PROP = 4194304;
+xrfragment_XRF.isColor = new EReg("^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$","");
+xrfragment_XRF.isInt = new EReg("^[-0-9]+$","");
+xrfragment_XRF.isFloat = new EReg("^[-0-9]+\\.[0-9]+$","");
+xrfragment_XRF.isVector = new EReg("([,]+|\\w)","");
+xrfragment_XRF.isUrl = new EReg("(://)?\\..*","");
+xrfragment_XRF.isUrlOrPretypedView = new EReg("(^#|://)?\\..*","");
+xrfragment_XRF.isString = new EReg(".*","");
+xrfragment_XRF.operators = new EReg("(^-|[\\*]+)","");
+xrfragment_XRF.isProp = new EReg("^.*=[><=]?","");
+xrfragment_XRF.isExclude = new EReg("^-","");
+xrfragment_XRF.isDeep = new EReg("\\*","");
+xrfragment_XRF.isNumber = new EReg("^[0-9\\.]+$","");
+})({});
+var xrfragment = $hx_exports["xrfragment"];
+export default xrfragment;
+var $hx_exports = typeof exports != "undefined" ? exports : typeof window != "undefined" ? window : typeof self != "undefined" ? self : this;
+(function ($global) { "use strict";
+$hx_exports["xrfragment"] = $hx_exports["xrfragment"] || {};
+var EReg = function(r,opt) {
+ this.r = new RegExp(r,opt.split("u").join(""));
+};
+EReg.__name__ = true;
+EReg.prototype = {
+ match: function(s) {
+ if(this.r.global) {
+ this.r.lastIndex = 0;
+ }
+ this.r.m = this.r.exec(s);
+ this.r.s = s;
+ return this.r.m != null;
+ }
+ ,split: function(s) {
+ var d = "#__delim__#";
+ return s.replace(this.r,d).split(d);
+ }
+};
+var HxOverrides = function() { };
+HxOverrides.__name__ = true;
+HxOverrides.cca = function(s,index) {
+ var x = s.charCodeAt(index);
+ if(x != x) {
+ return undefined;
+ }
+ return x;
+};
+HxOverrides.substr = function(s,pos,len) {
+ if(len == null) {
+ len = s.length;
+ } else if(len < 0) {
+ if(pos == 0) {
+ len = s.length + len;
+ } else {
+ return "";
+ }
+ }
+ return s.substr(pos,len);
+};
+HxOverrides.now = function() {
+ return Date.now();
+};
+Math.__name__ = true;
+var Reflect = function() { };
+Reflect.__name__ = true;
+Reflect.field = function(o,field) {
+ try {
+ return o[field];
+ } catch( _g ) {
+ return null;
+ }
+};
+Reflect.fields = function(o) {
+ var a = [];
+ if(o != null) {
+ var hasOwnProperty = Object.prototype.hasOwnProperty;
+ for( var f in o ) {
+ if(f != "__id__" && f != "hx__closures__" && hasOwnProperty.call(o,f)) {
+ a.push(f);
+ }
+ }
+ }
+ return a;
+};
+Reflect.deleteField = function(o,field) {
+ if(!Object.prototype.hasOwnProperty.call(o,field)) {
+ return false;
+ }
+ delete(o[field]);
+ return true;
+};
+Reflect.copy = function(o) {
+ if(o == null) {
+ return null;
+ }
+ var o2 = { };
+ var _g = 0;
+ var _g1 = Reflect.fields(o);
+ while(_g < _g1.length) {
+ var f = _g1[_g];
+ ++_g;
+ o2[f] = Reflect.field(o,f);
+ }
+ return o2;
+};
+var Std = function() { };
+Std.__name__ = true;
+Std.string = function(s) {
+ return js_Boot.__string_rec(s,"");
+};
+Std.parseInt = function(x) {
+ if(x != null) {
+ var _g = 0;
+ var _g1 = x.length;
+ while(_g < _g1) {
+ var i = _g++;
+ var c = x.charCodeAt(i);
+ if(c <= 8 || c >= 14 && c != 32 && c != 45) {
+ var nc = x.charCodeAt(i + 1);
+ var v = parseInt(x,nc == 120 || nc == 88 ? 16 : 10);
+ if(isNaN(v)) {
+ return null;
+ } else {
+ return v;
+ }
+ }
+ }
+ }
+ return null;
+};
+var StringTools = function() { };
+StringTools.__name__ = true;
+StringTools.isSpace = function(s,pos) {
+ var c = HxOverrides.cca(s,pos);
+ if(!(c > 8 && c < 14)) {
+ return c == 32;
+ } else {
+ return true;
+ }
+};
+StringTools.ltrim = function(s) {
+ var l = s.length;
+ var r = 0;
+ while(r < l && StringTools.isSpace(s,r)) ++r;
+ if(r > 0) {
+ return HxOverrides.substr(s,r,l - r);
+ } else {
+ return s;
+ }
+};
+StringTools.rtrim = function(s) {
+ var l = s.length;
+ var r = 0;
+ while(r < l && StringTools.isSpace(s,l - r - 1)) ++r;
+ if(r > 0) {
+ return HxOverrides.substr(s,0,l - r);
+ } else {
+ return s;
+ }
+};
+StringTools.trim = function(s) {
+ return StringTools.ltrim(StringTools.rtrim(s));
+};
+var haxe_iterators_ArrayIterator = function(array) {
+ this.current = 0;
+ this.array = array;
+};
+haxe_iterators_ArrayIterator.__name__ = true;
+haxe_iterators_ArrayIterator.prototype = {
+ hasNext: function() {
+ return this.current < this.array.length;
+ }
+ ,next: function() {
+ return this.array[this.current++];
+ }
+};
+var js_Boot = function() { };
+js_Boot.__name__ = true;
+js_Boot.__string_rec = function(o,s) {
+ if(o == null) {
+ return "null";
+ }
+ if(s.length >= 5) {
+ return "<...>";
+ }
+ var t = typeof(o);
+ if(t == "function" && (o.__name__ || o.__ename__)) {
+ t = "object";
+ }
+ switch(t) {
+ case "function":
+ return "";
+ case "object":
+ if(((o) instanceof Array)) {
+ var str = "[";
+ s += "\t";
+ var _g = 0;
+ var _g1 = o.length;
+ while(_g < _g1) {
+ var i = _g++;
+ str += (i > 0 ? "," : "") + js_Boot.__string_rec(o[i],s);
+ }
+ str += "]";
+ return str;
+ }
+ var tostr;
+ try {
+ tostr = o.toString;
+ } catch( _g ) {
+ return "???";
+ }
+ if(tostr != null && tostr != Object.toString && typeof(tostr) == "function") {
+ var s2 = o.toString();
+ if(s2 != "[object Object]") {
+ return s2;
+ }
+ }
+ var str = "{\n";
+ s += "\t";
+ var hasp = o.hasOwnProperty != null;
+ var k = null;
+ for( k in o ) {
+ if(hasp && !o.hasOwnProperty(k)) {
+ continue;
+ }
+ if(k == "prototype" || k == "__class__" || k == "__super__" || k == "__interfaces__" || k == "__properties__") {
+ continue;
+ }
+ if(str.length != 2) {
+ str += ", \n";
+ }
+ str += s + k + " : " + js_Boot.__string_rec(o[k],s);
+ }
+ s = s.substring(1);
+ str += "\n" + s + "}";
+ return str;
+ case "string":
+ return o;
+ default:
+ return String(o);
+ }
+};
+var xrfragment_Filter = $hx_exports["xrfragment"]["Filter"] = function(str) {
+ this.q = { };
+ this.str = "";
+ if(str != null) {
+ this.parse(str);
+ }
+};
+xrfragment_Filter.__name__ = true;
+xrfragment_Filter.prototype = {
+ toObject: function() {
+ return Reflect.copy(this.q);
+ }
+ ,get: function() {
+ return Reflect.copy(this.q);
+ }
+ ,parse: function(str) {
+ var token = str.split(" ");
+ var q = { };
+ var process = function(str,prefix) {
+ if(prefix == null) {
+ prefix = "";
+ }
+ str = StringTools.trim(str);
+ var k = str.split("=")[0];
+ var v = str.split("=")[1];
+ var filter = { };
+ if(q[prefix + k]) {
+ filter = q[prefix + k];
+ }
+ if(xrfragment_XRF.isProp.match(str)) {
+ var oper = "";
+ if(str.indexOf(">") != -1) {
+ oper = ">";
+ }
+ if(str.indexOf("<") != -1) {
+ oper = "<";
+ }
+ if(xrfragment_XRF.isExclude.match(k)) {
+ k = HxOverrides.substr(k,1,null);
+ }
+ v = HxOverrides.substr(v,oper.length,null);
+ if(oper.length == 0) {
+ oper = "=";
+ }
+ var rule = { };
+ if(xrfragment_XRF.isNumber.match(v)) {
+ rule[oper] = parseFloat(v);
+ } else {
+ rule[oper] = v;
+ }
+ q["expr"] = rule;
+ }
+ var value = xrfragment_XRF.isDeep.match(str) ? k.split("*").length - 1 : 0;
+ q["deep"] = value;
+ var value = xrfragment_XRF.isExclude.match(str) ? false : true;
+ q["show"] = value;
+ var value = k.replace(xrfragment_XRF.operators.r,"");
+ q["key"] = value;
+ q["value"] = v;
+ };
+ var _g = 0;
+ var _g1 = token.length;
+ while(_g < _g1) {
+ var i = _g++;
+ process(token[i]);
+ }
+ return this.q = q;
+ }
+ ,test: function(obj) {
+ var qualify = false;
+ var _g = 0;
+ var _g1 = Reflect.fields(obj);
+ while(_g < _g1.length) {
+ var k = _g1[_g];
+ ++_g;
+ var v = Std.string(Reflect.field(obj,k));
+ if(this.testProperty(k,v)) {
+ qualify = true;
+ }
+ }
+ var _g = 0;
+ var _g1 = Reflect.fields(obj);
+ while(_g < _g1.length) {
+ var k = _g1[_g];
+ ++_g;
+ var v = Std.string(Reflect.field(obj,k));
+ if(this.testProperty(k,v,true)) {
+ qualify = false;
+ }
+ }
+ return qualify;
+ }
+ ,testProperty: function(property,value,exclude) {
+ var conds = 0;
+ var fails = 0;
+ var qualify = 0;
+ var testprop = function(expr) {
+ conds += 1;
+ fails += expr ? 0 : 1;
+ return expr;
+ };
+ if(this.q[value] != null) {
+ var v = this.q[value];
+ if(v[property] != null) {
+ return v[property];
+ }
+ }
+ if(Reflect.field(this.q,"expr")) {
+ var f = Reflect.field(this.q,"expr");
+ if(!Reflect.field(this.q,"show")) {
+ if(Reflect.field(f,"!=") != null && testprop((value == null ? "null" : "" + value) == Std.string(Reflect.field(f,"!="))) && exclude) {
+ ++qualify;
+ }
+ } else {
+ if(Reflect.field(f,"*") != null && testprop(parseFloat(value) != null)) {
+ ++qualify;
+ }
+ if(Reflect.field(f,">") != null && testprop(parseFloat(value) >= parseFloat(Reflect.field(f,">")))) {
+ ++qualify;
+ }
+ if(Reflect.field(f,"<") != null && testprop(parseFloat(value) <= parseFloat(Reflect.field(f,"<")))) {
+ ++qualify;
+ }
+ if(Reflect.field(f,"=") != null && (testprop(value == Reflect.field(f,"=")) || testprop(parseFloat(value) == parseFloat(Reflect.field(f,"="))))) {
+ ++qualify;
+ }
+ }
+ }
+ return qualify > 0;
+ }
+};
+var xrfragment_Parser = $hx_exports["xrfragment"]["Parser"] = function() { };
+xrfragment_Parser.__name__ = true;
+xrfragment_Parser.parse = function(key,value,store,index) {
+ var Frag_h = Object.create(null);
+ Frag_h["#"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_PREDEFINED_VIEW | xrfragment_XRF.PV_EXECUTE;
+ Frag_h["src"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_URL;
+ Frag_h["href"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_URL | xrfragment_XRF.T_PREDEFINED_VIEW;
+ Frag_h["tag"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["pos"] = xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_VECTOR3 | xrfragment_XRF.T_STRING | xrfragment_XRF.T_STRING_OBJ | xrfragment_XRF.METADATA | xrfragment_XRF.NAVIGATOR;
+ Frag_h["rot"] = xrfragment_XRF.QUERY_OPERATOR | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_VECTOR3 | xrfragment_XRF.METADATA | xrfragment_XRF.NAVIGATOR;
+ Frag_h["t"] = xrfragment_XRF.ASSET | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_FLOAT | xrfragment_XRF.T_VECTOR2 | xrfragment_XRF.T_STRING | xrfragment_XRF.NAVIGATOR | xrfragment_XRF.METADATA;
+ Frag_h["tv"] = xrfragment_XRF.ASSET | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_FLOAT | xrfragment_XRF.T_VECTOR2 | xrfragment_XRF.T_VECTOR3 | xrfragment_XRF.NAVIGATOR | xrfragment_XRF.METADATA;
+ Frag_h["namespace"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["SPDX"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["unit"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["description"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["session"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_URL | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.NAVIGATOR | xrfragment_XRF.METADATA | xrfragment_XRF.PROMPT;
+ var keyStripped = key.replace(xrfragment_XRF.operators.r,"");
+ var isPVDynamic = key.length > 0 && !Object.prototype.hasOwnProperty.call(Frag_h,key);
+ var isPVDefault = value.length == 0 && key.length > 0 && key == "#";
+ if(isPVDynamic) {
+ var v = new xrfragment_XRF(key,xrfragment_XRF.PV_EXECUTE | xrfragment_XRF.NAVIGATOR,index);
+ v.validate(value);
+ store[keyStripped] = v;
+ return true;
+ }
+ var v = new xrfragment_XRF(key,Frag_h[key],index);
+ if(Object.prototype.hasOwnProperty.call(Frag_h,key)) {
+ if(!v.validate(value)) {
+ console.log("src/xrfragment/Parser.hx:66:","⚠ fragment '" + key + "' has incompatible value (" + value + ")");
+ return false;
+ }
+ store[keyStripped] = v;
+ if(xrfragment_Parser.debug) {
+ console.log("src/xrfragment/Parser.hx:70:","✔ " + key + ": " + v.string);
+ }
+ } else {
+ if(typeof(value) == "string") {
+ v.guessType(v,value);
+ }
+ v.noXRF = true;
+ store[keyStripped] = v;
+ }
+ return true;
+};
+var xrfragment_URI = $hx_exports["xrfragment"]["URI"] = function() { };
+xrfragment_URI.__name__ = true;
+xrfragment_URI.parse = function(url,filter) {
+ var store = { };
+ if(url == null || url.indexOf("#") == -1) {
+ return store;
+ }
+ var fragment = url.split("#");
+ var splitArray = fragment[1].split("&");
+ var _g = 0;
+ var _g1 = splitArray.length;
+ while(_g < _g1) {
+ var i = _g++;
+ var splitByEqual = splitArray[i].split("=");
+ var regexPlus = new EReg("\\+","g");
+ var key = splitByEqual[0];
+ var value = "";
+ if(splitByEqual.length > 1) {
+ var s = regexPlus.split(splitByEqual[1]).join(" ");
+ value = decodeURIComponent(s.split("+").join(" "));
+ }
+ var ok = xrfragment_Parser.parse(key,value,store,i);
+ }
+ if(filter != null && filter != 0) {
+ var _g = 0;
+ var _g1 = Reflect.fields(store);
+ while(_g < _g1.length) {
+ var key = _g1[_g];
+ ++_g;
+ var xrf = store[key];
+ if(!xrf.is(filter)) {
+ Reflect.deleteField(store,key);
+ }
+ }
+ }
+ return store;
+};
+var xrfragment_XRF = $hx_exports["xrfragment"]["XRF"] = function(_fragment,_flags,_index) {
+ this.fragment = _fragment;
+ this.flags = _flags;
+ this.index = _index;
+};
+xrfragment_XRF.__name__ = true;
+xrfragment_XRF.set = function(flag,flags) {
+ return flags | flag;
+};
+xrfragment_XRF.unset = function(flag,flags) {
+ return flags & ~flag;
+};
+xrfragment_XRF.prototype = {
+ is: function(flag) {
+ var v = this.flags;
+ if(!(typeof(v) == "number" && ((v | 0) === v))) {
+ this.flags = 0;
+ }
+ return (this.flags & flag) != 0;
+ }
+ ,validate: function(value) {
+ this.guessType(this,value);
+ var ok = true;
+ if(!this.is(xrfragment_XRF.T_FLOAT) && this.is(xrfragment_XRF.T_VECTOR2) && !(typeof(this.x) == "number" && typeof(this.y) == "number")) {
+ ok = false;
+ }
+ if(!(this.is(xrfragment_XRF.T_VECTOR2) || this.is(xrfragment_XRF.T_STRING)) && this.is(xrfragment_XRF.T_VECTOR3) && !(typeof(this.x) == "number" && typeof(this.y) == "number" && typeof(this.z) == "number")) {
+ ok = false;
+ }
+ return ok;
+ }
+ ,guessType: function(v,str) {
+ v.string = str;
+ if(typeof(str) != "string") {
+ return;
+ }
+ if(str.length > 0) {
+ if(str.split(",").length > 1) {
+ var xyzw = str.split(",");
+ if(xyzw.length > 0) {
+ v.x = parseFloat(xyzw[0]);
+ }
+ if(xyzw.length > 1) {
+ v.y = parseFloat(xyzw[1]);
+ }
+ if(xyzw.length > 2) {
+ v.z = parseFloat(xyzw[2]);
+ }
+ if(xyzw.length > 3) {
+ v.w = parseFloat(xyzw[3]);
+ }
+ }
+ if(xrfragment_XRF.isColor.match(str)) {
+ v.color = str;
+ }
+ if(xrfragment_XRF.isFloat.match(str)) {
+ v.x = parseFloat(str);
+ v.float = v.x;
+ }
+ if(xrfragment_XRF.isInt.match(str)) {
+ v.int = Std.parseInt(str);
+ v.x = v.int;
+ }
+ v.filter = new xrfragment_Filter(v.fragment + "=" + v.string);
+ } else {
+ v.filter = new xrfragment_Filter(v.fragment);
+ }
+ }
+};
+if(typeof(performance) != "undefined" ? typeof(performance.now) == "function" : false) {
+ HxOverrides.now = performance.now.bind(performance);
+}
+String.__name__ = true;
+Array.__name__ = true;
+js_Boot.__toStr = ({ }).toString;
+xrfragment_Parser.error = "";
+xrfragment_Parser.debug = false;
+xrfragment_XRF.ASSET = 1;
+xrfragment_XRF.PROP_BIND = 2;
+xrfragment_XRF.QUERY_OPERATOR = 4;
+xrfragment_XRF.PROMPT = 8;
+xrfragment_XRF.ROUNDROBIN = 16;
+xrfragment_XRF.NAVIGATOR = 32;
+xrfragment_XRF.METADATA = 64;
+xrfragment_XRF.PV_OVERRIDE = 128;
+xrfragment_XRF.PV_EXECUTE = 256;
+xrfragment_XRF.T_COLOR = 8192;
+xrfragment_XRF.T_INT = 16384;
+xrfragment_XRF.T_FLOAT = 32768;
+xrfragment_XRF.T_VECTOR2 = 65536;
+xrfragment_XRF.T_VECTOR3 = 131072;
+xrfragment_XRF.T_URL = 262144;
+xrfragment_XRF.T_PREDEFINED_VIEW = 524288;
+xrfragment_XRF.T_STRING = 1048576;
+xrfragment_XRF.T_STRING_OBJ = 2097152;
+xrfragment_XRF.T_STRING_OBJ_PROP = 4194304;
+xrfragment_XRF.isColor = new EReg("^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$","");
+xrfragment_XRF.isInt = new EReg("^[-0-9]+$","");
+xrfragment_XRF.isFloat = new EReg("^[-0-9]+\\.[0-9]+$","");
+xrfragment_XRF.isVector = new EReg("([,]+|\\w)","");
+xrfragment_XRF.isUrl = new EReg("(://)?\\..*","");
+xrfragment_XRF.isUrlOrPretypedView = new EReg("(^#|://)?\\..*","");
+xrfragment_XRF.isString = new EReg(".*","");
+xrfragment_XRF.operators = new EReg("(^-|[\\*]+)","");
+xrfragment_XRF.isProp = new EReg("^.*=[><=]?","");
+xrfragment_XRF.isExclude = new EReg("^-","");
+xrfragment_XRF.isDeep = new EReg("\\*","");
+xrfragment_XRF.isNumber = new EReg("^[0-9\\.]+$","");
+})({});
+var xrfragment = $hx_exports["xrfragment"];
+export default xrfragment;
+var $hx_exports = typeof exports != "undefined" ? exports : typeof window != "undefined" ? window : typeof self != "undefined" ? self : this;
+(function ($global) { "use strict";
+$hx_exports["xrfragment"] = $hx_exports["xrfragment"] || {};
+var EReg = function(r,opt) {
+ this.r = new RegExp(r,opt.split("u").join(""));
+};
+EReg.__name__ = true;
+EReg.prototype = {
+ match: function(s) {
+ if(this.r.global) {
+ this.r.lastIndex = 0;
+ }
+ this.r.m = this.r.exec(s);
+ this.r.s = s;
+ return this.r.m != null;
+ }
+ ,split: function(s) {
+ var d = "#__delim__#";
+ return s.replace(this.r,d).split(d);
+ }
+};
+var HxOverrides = function() { };
+HxOverrides.__name__ = true;
+HxOverrides.cca = function(s,index) {
+ var x = s.charCodeAt(index);
+ if(x != x) {
+ return undefined;
+ }
+ return x;
+};
+HxOverrides.substr = function(s,pos,len) {
+ if(len == null) {
+ len = s.length;
+ } else if(len < 0) {
+ if(pos == 0) {
+ len = s.length + len;
+ } else {
+ return "";
+ }
+ }
+ return s.substr(pos,len);
+};
+HxOverrides.now = function() {
+ return Date.now();
+};
+Math.__name__ = true;
+var Reflect = function() { };
+Reflect.__name__ = true;
+Reflect.field = function(o,field) {
+ try {
+ return o[field];
+ } catch( _g ) {
+ return null;
+ }
+};
+Reflect.fields = function(o) {
+ var a = [];
+ if(o != null) {
+ var hasOwnProperty = Object.prototype.hasOwnProperty;
+ for( var f in o ) {
+ if(f != "__id__" && f != "hx__closures__" && hasOwnProperty.call(o,f)) {
+ a.push(f);
+ }
+ }
+ }
+ return a;
+};
+Reflect.deleteField = function(o,field) {
+ if(!Object.prototype.hasOwnProperty.call(o,field)) {
+ return false;
+ }
+ delete(o[field]);
+ return true;
+};
+Reflect.copy = function(o) {
+ if(o == null) {
+ return null;
+ }
+ var o2 = { };
+ var _g = 0;
+ var _g1 = Reflect.fields(o);
+ while(_g < _g1.length) {
+ var f = _g1[_g];
+ ++_g;
+ o2[f] = Reflect.field(o,f);
+ }
+ return o2;
+};
+var Std = function() { };
+Std.__name__ = true;
+Std.string = function(s) {
+ return js_Boot.__string_rec(s,"");
+};
+Std.parseInt = function(x) {
+ if(x != null) {
+ var _g = 0;
+ var _g1 = x.length;
+ while(_g < _g1) {
+ var i = _g++;
+ var c = x.charCodeAt(i);
+ if(c <= 8 || c >= 14 && c != 32 && c != 45) {
+ var nc = x.charCodeAt(i + 1);
+ var v = parseInt(x,nc == 120 || nc == 88 ? 16 : 10);
+ if(isNaN(v)) {
+ return null;
+ } else {
+ return v;
+ }
+ }
+ }
+ }
+ return null;
+};
+var StringTools = function() { };
+StringTools.__name__ = true;
+StringTools.isSpace = function(s,pos) {
+ var c = HxOverrides.cca(s,pos);
+ if(!(c > 8 && c < 14)) {
+ return c == 32;
+ } else {
+ return true;
+ }
+};
+StringTools.ltrim = function(s) {
+ var l = s.length;
+ var r = 0;
+ while(r < l && StringTools.isSpace(s,r)) ++r;
+ if(r > 0) {
+ return HxOverrides.substr(s,r,l - r);
+ } else {
+ return s;
+ }
+};
+StringTools.rtrim = function(s) {
+ var l = s.length;
+ var r = 0;
+ while(r < l && StringTools.isSpace(s,l - r - 1)) ++r;
+ if(r > 0) {
+ return HxOverrides.substr(s,0,l - r);
+ } else {
+ return s;
+ }
+};
+StringTools.trim = function(s) {
+ return StringTools.ltrim(StringTools.rtrim(s));
+};
+var haxe_iterators_ArrayIterator = function(array) {
+ this.current = 0;
+ this.array = array;
+};
+haxe_iterators_ArrayIterator.__name__ = true;
+haxe_iterators_ArrayIterator.prototype = {
+ hasNext: function() {
+ return this.current < this.array.length;
+ }
+ ,next: function() {
+ return this.array[this.current++];
+ }
+};
+var js_Boot = function() { };
+js_Boot.__name__ = true;
+js_Boot.__string_rec = function(o,s) {
+ if(o == null) {
+ return "null";
+ }
+ if(s.length >= 5) {
+ return "<...>";
+ }
+ var t = typeof(o);
+ if(t == "function" && (o.__name__ || o.__ename__)) {
+ t = "object";
+ }
+ switch(t) {
+ case "function":
+ return "";
+ case "object":
+ if(((o) instanceof Array)) {
+ var str = "[";
+ s += "\t";
+ var _g = 0;
+ var _g1 = o.length;
+ while(_g < _g1) {
+ var i = _g++;
+ str += (i > 0 ? "," : "") + js_Boot.__string_rec(o[i],s);
+ }
+ str += "]";
+ return str;
+ }
+ var tostr;
+ try {
+ tostr = o.toString;
+ } catch( _g ) {
+ return "???";
+ }
+ if(tostr != null && tostr != Object.toString && typeof(tostr) == "function") {
+ var s2 = o.toString();
+ if(s2 != "[object Object]") {
+ return s2;
+ }
+ }
+ var str = "{\n";
+ s += "\t";
+ var hasp = o.hasOwnProperty != null;
+ var k = null;
+ for( k in o ) {
+ if(hasp && !o.hasOwnProperty(k)) {
+ continue;
+ }
+ if(k == "prototype" || k == "__class__" || k == "__super__" || k == "__interfaces__" || k == "__properties__") {
+ continue;
+ }
+ if(str.length != 2) {
+ str += ", \n";
+ }
+ str += s + k + " : " + js_Boot.__string_rec(o[k],s);
+ }
+ s = s.substring(1);
+ str += "\n" + s + "}";
+ return str;
+ case "string":
+ return o;
+ default:
+ return String(o);
+ }
+};
+var xrfragment_Filter = $hx_exports["xrfragment"]["Filter"] = function(str) {
+ this.q = { };
+ this.str = "";
+ if(str != null) {
+ this.parse(str);
+ }
+};
+xrfragment_Filter.__name__ = true;
+xrfragment_Filter.prototype = {
+ toObject: function() {
+ return Reflect.copy(this.q);
+ }
+ ,get: function() {
+ return Reflect.copy(this.q);
+ }
+ ,parse: function(str) {
+ var token = str.split(" ");
+ var q = { };
+ var process = function(str,prefix) {
+ if(prefix == null) {
+ prefix = "";
+ }
+ str = StringTools.trim(str);
+ var k = str.split("=")[0];
+ var v = str.split("=")[1];
+ var filter = { };
+ if(q[prefix + k]) {
+ filter = q[prefix + k];
+ }
+ if(xrfragment_XRF.isProp.match(str)) {
+ var oper = "";
+ if(str.indexOf(">") != -1) {
+ oper = ">";
+ }
+ if(str.indexOf("<") != -1) {
+ oper = "<";
+ }
+ if(xrfragment_XRF.isExclude.match(k)) {
+ k = HxOverrides.substr(k,1,null);
+ }
+ v = HxOverrides.substr(v,oper.length,null);
+ if(oper.length == 0) {
+ oper = "=";
+ }
+ var rule = { };
+ if(xrfragment_XRF.isNumber.match(v)) {
+ rule[oper] = parseFloat(v);
+ } else {
+ rule[oper] = v;
+ }
+ q["expr"] = rule;
+ }
+ var value = xrfragment_XRF.isDeep.match(str) ? k.split("*").length - 1 : 0;
+ q["deep"] = value;
+ var value = xrfragment_XRF.isExclude.match(str) ? false : true;
+ q["show"] = value;
+ var value = k.replace(xrfragment_XRF.operators.r,"");
+ q["key"] = value;
+ q["value"] = v;
+ };
+ var _g = 0;
+ var _g1 = token.length;
+ while(_g < _g1) {
+ var i = _g++;
+ process(token[i]);
+ }
+ return this.q = q;
+ }
+ ,test: function(obj) {
+ var qualify = false;
+ var _g = 0;
+ var _g1 = Reflect.fields(obj);
+ while(_g < _g1.length) {
+ var k = _g1[_g];
+ ++_g;
+ var v = Std.string(Reflect.field(obj,k));
+ if(this.testProperty(k,v)) {
+ qualify = true;
+ }
+ }
+ var _g = 0;
+ var _g1 = Reflect.fields(obj);
+ while(_g < _g1.length) {
+ var k = _g1[_g];
+ ++_g;
+ var v = Std.string(Reflect.field(obj,k));
+ if(this.testProperty(k,v,true)) {
+ qualify = false;
+ }
+ }
+ return qualify;
+ }
+ ,testProperty: function(property,value,exclude) {
+ var conds = 0;
+ var fails = 0;
+ var qualify = 0;
+ var testprop = function(expr) {
+ conds += 1;
+ fails += expr ? 0 : 1;
+ return expr;
+ };
+ if(this.q[value] != null) {
+ var v = this.q[value];
+ if(v[property] != null) {
+ return v[property];
+ }
+ }
+ if(Reflect.field(this.q,"expr")) {
+ var f = Reflect.field(this.q,"expr");
+ if(!Reflect.field(this.q,"show")) {
+ if(Reflect.field(f,"!=") != null && testprop((value == null ? "null" : "" + value) == Std.string(Reflect.field(f,"!="))) && exclude) {
+ ++qualify;
+ }
+ } else {
+ if(Reflect.field(f,"*") != null && testprop(parseFloat(value) != null)) {
+ ++qualify;
+ }
+ if(Reflect.field(f,">") != null && testprop(parseFloat(value) >= parseFloat(Reflect.field(f,">")))) {
+ ++qualify;
+ }
+ if(Reflect.field(f,"<") != null && testprop(parseFloat(value) <= parseFloat(Reflect.field(f,"<")))) {
+ ++qualify;
+ }
+ if(Reflect.field(f,"=") != null && (testprop(value == Reflect.field(f,"=")) || testprop(parseFloat(value) == parseFloat(Reflect.field(f,"="))))) {
+ ++qualify;
+ }
+ }
+ }
+ return qualify > 0;
+ }
+};
+var xrfragment_Parser = $hx_exports["xrfragment"]["Parser"] = function() { };
+xrfragment_Parser.__name__ = true;
+xrfragment_Parser.parse = function(key,value,store,index) {
+ var Frag_h = Object.create(null);
+ Frag_h["#"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_PREDEFINED_VIEW | xrfragment_XRF.PV_EXECUTE;
+ Frag_h["src"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_URL;
+ Frag_h["href"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_URL | xrfragment_XRF.T_PREDEFINED_VIEW;
+ Frag_h["tag"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["pos"] = xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_VECTOR3 | xrfragment_XRF.T_STRING | xrfragment_XRF.T_STRING_OBJ | xrfragment_XRF.METADATA | xrfragment_XRF.NAVIGATOR;
+ Frag_h["rot"] = xrfragment_XRF.QUERY_OPERATOR | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_VECTOR3 | xrfragment_XRF.METADATA | xrfragment_XRF.NAVIGATOR;
+ Frag_h["t"] = xrfragment_XRF.ASSET | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_FLOAT | xrfragment_XRF.T_VECTOR2 | xrfragment_XRF.T_STRING | xrfragment_XRF.NAVIGATOR | xrfragment_XRF.METADATA;
+ Frag_h["tv"] = xrfragment_XRF.ASSET | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_FLOAT | xrfragment_XRF.T_VECTOR2 | xrfragment_XRF.T_VECTOR3 | xrfragment_XRF.NAVIGATOR | xrfragment_XRF.METADATA;
+ Frag_h["namespace"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["SPDX"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["unit"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["description"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["session"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_URL | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.NAVIGATOR | xrfragment_XRF.METADATA | xrfragment_XRF.PROMPT;
+ var keyStripped = key.replace(xrfragment_XRF.operators.r,"");
+ var isPVDynamic = key.length > 0 && !Object.prototype.hasOwnProperty.call(Frag_h,key);
+ var isPVDefault = value.length == 0 && key.length > 0 && key == "#";
+ if(isPVDynamic) {
+ var v = new xrfragment_XRF(key,xrfragment_XRF.PV_EXECUTE | xrfragment_XRF.NAVIGATOR,index);
+ v.validate(value);
+ store[keyStripped] = v;
+ return true;
+ }
+ var v = new xrfragment_XRF(key,Frag_h[key],index);
+ if(Object.prototype.hasOwnProperty.call(Frag_h,key)) {
+ if(!v.validate(value)) {
+ console.log("src/xrfragment/Parser.hx:66:","⚠ fragment '" + key + "' has incompatible value (" + value + ")");
+ return false;
+ }
+ store[keyStripped] = v;
+ if(xrfragment_Parser.debug) {
+ console.log("src/xrfragment/Parser.hx:70:","✔ " + key + ": " + v.string);
+ }
+ } else {
+ if(typeof(value) == "string") {
+ v.guessType(v,value);
+ }
+ v.noXRF = true;
+ store[keyStripped] = v;
+ }
+ return true;
+};
+var xrfragment_URI = $hx_exports["xrfragment"]["URI"] = function() { };
+xrfragment_URI.__name__ = true;
+xrfragment_URI.parse = function(url,filter) {
+ var store = { };
+ if(url == null || url.indexOf("#") == -1) {
+ return store;
+ }
+ var fragment = url.split("#");
+ var splitArray = fragment[1].split("&");
+ var _g = 0;
+ var _g1 = splitArray.length;
+ while(_g < _g1) {
+ var i = _g++;
+ var splitByEqual = splitArray[i].split("=");
+ var regexPlus = new EReg("\\+","g");
+ var key = splitByEqual[0];
+ var value = "";
+ if(splitByEqual.length > 1) {
+ var s = regexPlus.split(splitByEqual[1]).join(" ");
+ value = decodeURIComponent(s.split("+").join(" "));
+ }
+ var ok = xrfragment_Parser.parse(key,value,store,i);
+ }
+ if(filter != null && filter != 0) {
+ var _g = 0;
+ var _g1 = Reflect.fields(store);
+ while(_g < _g1.length) {
+ var key = _g1[_g];
+ ++_g;
+ var xrf = store[key];
+ if(!xrf.is(filter)) {
+ Reflect.deleteField(store,key);
+ }
+ }
+ }
+ return store;
+};
+var xrfragment_XRF = $hx_exports["xrfragment"]["XRF"] = function(_fragment,_flags,_index) {
+ this.fragment = _fragment;
+ this.flags = _flags;
+ this.index = _index;
+};
+xrfragment_XRF.__name__ = true;
+xrfragment_XRF.set = function(flag,flags) {
+ return flags | flag;
+};
+xrfragment_XRF.unset = function(flag,flags) {
+ return flags & ~flag;
+};
+xrfragment_XRF.prototype = {
+ is: function(flag) {
+ var v = this.flags;
+ if(!(typeof(v) == "number" && ((v | 0) === v))) {
+ this.flags = 0;
+ }
+ return (this.flags & flag) != 0;
+ }
+ ,validate: function(value) {
+ this.guessType(this,value);
+ var ok = true;
+ if(!this.is(xrfragment_XRF.T_FLOAT) && this.is(xrfragment_XRF.T_VECTOR2) && !(typeof(this.x) == "number" && typeof(this.y) == "number")) {
+ ok = false;
+ }
+ if(!(this.is(xrfragment_XRF.T_VECTOR2) || this.is(xrfragment_XRF.T_STRING)) && this.is(xrfragment_XRF.T_VECTOR3) && !(typeof(this.x) == "number" && typeof(this.y) == "number" && typeof(this.z) == "number")) {
+ ok = false;
+ }
+ return ok;
+ }
+ ,guessType: function(v,str) {
+ v.string = str;
+ if(typeof(str) != "string") {
+ return;
+ }
+ if(str.length > 0) {
+ if(str.split(",").length > 1) {
+ var xyzw = str.split(",");
+ if(xyzw.length > 0) {
+ v.x = parseFloat(xyzw[0]);
+ }
+ if(xyzw.length > 1) {
+ v.y = parseFloat(xyzw[1]);
+ }
+ if(xyzw.length > 2) {
+ v.z = parseFloat(xyzw[2]);
+ }
+ if(xyzw.length > 3) {
+ v.w = parseFloat(xyzw[3]);
+ }
+ }
+ if(xrfragment_XRF.isColor.match(str)) {
+ v.color = str;
+ }
+ if(xrfragment_XRF.isFloat.match(str)) {
+ v.x = parseFloat(str);
+ v.float = v.x;
+ }
+ if(xrfragment_XRF.isInt.match(str)) {
+ v.int = Std.parseInt(str);
+ v.x = v.int;
+ }
+ v.filter = new xrfragment_Filter(v.fragment + "=" + v.string);
+ } else {
+ v.filter = new xrfragment_Filter(v.fragment);
+ }
+ }
+};
+if(typeof(performance) != "undefined" ? typeof(performance.now) == "function" : false) {
+ HxOverrides.now = performance.now.bind(performance);
+}
+String.__name__ = true;
+Array.__name__ = true;
+js_Boot.__toStr = ({ }).toString;
+xrfragment_Parser.error = "";
+xrfragment_Parser.debug = false;
+xrfragment_XRF.ASSET = 1;
+xrfragment_XRF.PROP_BIND = 2;
+xrfragment_XRF.QUERY_OPERATOR = 4;
+xrfragment_XRF.PROMPT = 8;
+xrfragment_XRF.ROUNDROBIN = 16;
+xrfragment_XRF.NAVIGATOR = 32;
+xrfragment_XRF.METADATA = 64;
+xrfragment_XRF.PV_OVERRIDE = 128;
+xrfragment_XRF.PV_EXECUTE = 256;
+xrfragment_XRF.T_COLOR = 8192;
+xrfragment_XRF.T_INT = 16384;
+xrfragment_XRF.T_FLOAT = 32768;
+xrfragment_XRF.T_VECTOR2 = 65536;
+xrfragment_XRF.T_VECTOR3 = 131072;
+xrfragment_XRF.T_URL = 262144;
+xrfragment_XRF.T_PREDEFINED_VIEW = 524288;
+xrfragment_XRF.T_STRING = 1048576;
+xrfragment_XRF.T_STRING_OBJ = 2097152;
+xrfragment_XRF.T_STRING_OBJ_PROP = 4194304;
+xrfragment_XRF.isColor = new EReg("^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$","");
+xrfragment_XRF.isInt = new EReg("^[-0-9]+$","");
+xrfragment_XRF.isFloat = new EReg("^[-0-9]+\\.[0-9]+$","");
+xrfragment_XRF.isVector = new EReg("([,]+|\\w)","");
+xrfragment_XRF.isUrl = new EReg("(://)?\\..*","");
+xrfragment_XRF.isUrlOrPretypedView = new EReg("(^#|://)?\\..*","");
+xrfragment_XRF.isString = new EReg(".*","");
+xrfragment_XRF.operators = new EReg("(^-|[\\*]+)","");
+xrfragment_XRF.isProp = new EReg("^.*=[><=]?","");
+xrfragment_XRF.isExclude = new EReg("^-","");
+xrfragment_XRF.isDeep = new EReg("\\*","");
+xrfragment_XRF.isNumber = new EReg("^[0-9\\.]+$","");
+})({});
+var xrfragment = $hx_exports["xrfragment"];
+export default xrfragment;
+var $hx_exports = typeof exports != "undefined" ? exports : typeof window != "undefined" ? window : typeof self != "undefined" ? self : this;
+(function ($global) { "use strict";
+$hx_exports["xrfragment"] = $hx_exports["xrfragment"] || {};
+var EReg = function(r,opt) {
+ this.r = new RegExp(r,opt.split("u").join(""));
+};
+EReg.__name__ = true;
+EReg.prototype = {
+ match: function(s) {
+ if(this.r.global) {
+ this.r.lastIndex = 0;
+ }
+ this.r.m = this.r.exec(s);
+ this.r.s = s;
+ return this.r.m != null;
+ }
+ ,split: function(s) {
+ var d = "#__delim__#";
+ return s.replace(this.r,d).split(d);
+ }
+};
+var HxOverrides = function() { };
+HxOverrides.__name__ = true;
+HxOverrides.cca = function(s,index) {
+ var x = s.charCodeAt(index);
+ if(x != x) {
+ return undefined;
+ }
+ return x;
+};
+HxOverrides.substr = function(s,pos,len) {
+ if(len == null) {
+ len = s.length;
+ } else if(len < 0) {
+ if(pos == 0) {
+ len = s.length + len;
+ } else {
+ return "";
+ }
+ }
+ return s.substr(pos,len);
+};
+HxOverrides.now = function() {
+ return Date.now();
+};
+Math.__name__ = true;
+var Reflect = function() { };
+Reflect.__name__ = true;
+Reflect.field = function(o,field) {
+ try {
+ return o[field];
+ } catch( _g ) {
+ return null;
+ }
+};
+Reflect.fields = function(o) {
+ var a = [];
+ if(o != null) {
+ var hasOwnProperty = Object.prototype.hasOwnProperty;
+ for( var f in o ) {
+ if(f != "__id__" && f != "hx__closures__" && hasOwnProperty.call(o,f)) {
+ a.push(f);
+ }
+ }
+ }
+ return a;
+};
+Reflect.deleteField = function(o,field) {
+ if(!Object.prototype.hasOwnProperty.call(o,field)) {
+ return false;
+ }
+ delete(o[field]);
+ return true;
+};
+Reflect.copy = function(o) {
+ if(o == null) {
+ return null;
+ }
+ var o2 = { };
+ var _g = 0;
+ var _g1 = Reflect.fields(o);
+ while(_g < _g1.length) {
+ var f = _g1[_g];
+ ++_g;
+ o2[f] = Reflect.field(o,f);
+ }
+ return o2;
+};
+var Std = function() { };
+Std.__name__ = true;
+Std.string = function(s) {
+ return js_Boot.__string_rec(s,"");
+};
+Std.parseInt = function(x) {
+ if(x != null) {
+ var _g = 0;
+ var _g1 = x.length;
+ while(_g < _g1) {
+ var i = _g++;
+ var c = x.charCodeAt(i);
+ if(c <= 8 || c >= 14 && c != 32 && c != 45) {
+ var nc = x.charCodeAt(i + 1);
+ var v = parseInt(x,nc == 120 || nc == 88 ? 16 : 10);
+ if(isNaN(v)) {
+ return null;
+ } else {
+ return v;
+ }
+ }
+ }
+ }
+ return null;
+};
+var StringTools = function() { };
+StringTools.__name__ = true;
+StringTools.isSpace = function(s,pos) {
+ var c = HxOverrides.cca(s,pos);
+ if(!(c > 8 && c < 14)) {
+ return c == 32;
+ } else {
+ return true;
+ }
+};
+StringTools.ltrim = function(s) {
+ var l = s.length;
+ var r = 0;
+ while(r < l && StringTools.isSpace(s,r)) ++r;
+ if(r > 0) {
+ return HxOverrides.substr(s,r,l - r);
+ } else {
+ return s;
+ }
+};
+StringTools.rtrim = function(s) {
+ var l = s.length;
+ var r = 0;
+ while(r < l && StringTools.isSpace(s,l - r - 1)) ++r;
+ if(r > 0) {
+ return HxOverrides.substr(s,0,l - r);
+ } else {
+ return s;
+ }
+};
+StringTools.trim = function(s) {
+ return StringTools.ltrim(StringTools.rtrim(s));
+};
+var haxe_iterators_ArrayIterator = function(array) {
+ this.current = 0;
+ this.array = array;
+};
+haxe_iterators_ArrayIterator.__name__ = true;
+haxe_iterators_ArrayIterator.prototype = {
+ hasNext: function() {
+ return this.current < this.array.length;
+ }
+ ,next: function() {
+ return this.array[this.current++];
+ }
+};
+var js_Boot = function() { };
+js_Boot.__name__ = true;
+js_Boot.__string_rec = function(o,s) {
+ if(o == null) {
+ return "null";
+ }
+ if(s.length >= 5) {
+ return "<...>";
+ }
+ var t = typeof(o);
+ if(t == "function" && (o.__name__ || o.__ename__)) {
+ t = "object";
+ }
+ switch(t) {
+ case "function":
+ return "";
+ case "object":
+ if(((o) instanceof Array)) {
+ var str = "[";
+ s += "\t";
+ var _g = 0;
+ var _g1 = o.length;
+ while(_g < _g1) {
+ var i = _g++;
+ str += (i > 0 ? "," : "") + js_Boot.__string_rec(o[i],s);
+ }
+ str += "]";
+ return str;
+ }
+ var tostr;
+ try {
+ tostr = o.toString;
+ } catch( _g ) {
+ return "???";
+ }
+ if(tostr != null && tostr != Object.toString && typeof(tostr) == "function") {
+ var s2 = o.toString();
+ if(s2 != "[object Object]") {
+ return s2;
+ }
+ }
+ var str = "{\n";
+ s += "\t";
+ var hasp = o.hasOwnProperty != null;
+ var k = null;
+ for( k in o ) {
+ if(hasp && !o.hasOwnProperty(k)) {
+ continue;
+ }
+ if(k == "prototype" || k == "__class__" || k == "__super__" || k == "__interfaces__" || k == "__properties__") {
+ continue;
+ }
+ if(str.length != 2) {
+ str += ", \n";
+ }
+ str += s + k + " : " + js_Boot.__string_rec(o[k],s);
+ }
+ s = s.substring(1);
+ str += "\n" + s + "}";
+ return str;
+ case "string":
+ return o;
+ default:
+ return String(o);
+ }
+};
+var xrfragment_Filter = $hx_exports["xrfragment"]["Filter"] = function(str) {
+ this.q = { };
+ this.str = "";
+ if(str != null) {
+ this.parse(str);
+ }
+};
+xrfragment_Filter.__name__ = true;
+xrfragment_Filter.prototype = {
+ toObject: function() {
+ return Reflect.copy(this.q);
+ }
+ ,get: function() {
+ return Reflect.copy(this.q);
+ }
+ ,parse: function(str) {
+ var token = str.split(" ");
+ var q = { };
+ var process = function(str,prefix) {
+ if(prefix == null) {
+ prefix = "";
+ }
+ str = StringTools.trim(str);
+ var k = str.split("=")[0];
+ var v = str.split("=")[1];
+ var filter = { };
+ if(q[prefix + k]) {
+ filter = q[prefix + k];
+ }
+ if(xrfragment_XRF.isProp.match(str)) {
+ var oper = "";
+ if(str.indexOf(">") != -1) {
+ oper = ">";
+ }
+ if(str.indexOf("<") != -1) {
+ oper = "<";
+ }
+ if(xrfragment_XRF.isExclude.match(k)) {
+ k = HxOverrides.substr(k,1,null);
+ }
+ v = HxOverrides.substr(v,oper.length,null);
+ if(oper.length == 0) {
+ oper = "=";
+ }
+ var rule = { };
+ if(xrfragment_XRF.isNumber.match(v)) {
+ rule[oper] = parseFloat(v);
+ } else {
+ rule[oper] = v;
+ }
+ q["expr"] = rule;
+ }
+ var value = xrfragment_XRF.isDeep.match(str) ? k.split("*").length - 1 : 0;
+ q["deep"] = value;
+ var value = xrfragment_XRF.isExclude.match(str) ? false : true;
+ q["show"] = value;
+ var value = k.replace(xrfragment_XRF.operators.r,"");
+ q["key"] = value;
+ q["value"] = v;
+ };
+ var _g = 0;
+ var _g1 = token.length;
+ while(_g < _g1) {
+ var i = _g++;
+ process(token[i]);
+ }
+ return this.q = q;
+ }
+ ,test: function(obj) {
+ var qualify = false;
+ var _g = 0;
+ var _g1 = Reflect.fields(obj);
+ while(_g < _g1.length) {
+ var k = _g1[_g];
+ ++_g;
+ var v = Std.string(Reflect.field(obj,k));
+ if(this.testProperty(k,v)) {
+ qualify = true;
+ }
+ }
+ var _g = 0;
+ var _g1 = Reflect.fields(obj);
+ while(_g < _g1.length) {
+ var k = _g1[_g];
+ ++_g;
+ var v = Std.string(Reflect.field(obj,k));
+ if(this.testProperty(k,v,true)) {
+ qualify = false;
+ }
+ }
+ return qualify;
+ }
+ ,testProperty: function(property,value,exclude) {
+ var conds = 0;
+ var fails = 0;
+ var qualify = 0;
+ var testprop = function(expr) {
+ conds += 1;
+ fails += expr ? 0 : 1;
+ return expr;
+ };
+ if(this.q[value] != null) {
+ var v = this.q[value];
+ if(v[property] != null) {
+ return v[property];
+ }
+ }
+ if(Reflect.field(this.q,"expr")) {
+ var f = Reflect.field(this.q,"expr");
+ if(!Reflect.field(this.q,"show")) {
+ if(Reflect.field(f,"!=") != null && testprop((value == null ? "null" : "" + value) == Std.string(Reflect.field(f,"!="))) && exclude) {
+ ++qualify;
+ }
+ } else {
+ if(Reflect.field(f,"*") != null && testprop(parseFloat(value) != null)) {
+ ++qualify;
+ }
+ if(Reflect.field(f,">") != null && testprop(parseFloat(value) >= parseFloat(Reflect.field(f,">")))) {
+ ++qualify;
+ }
+ if(Reflect.field(f,"<") != null && testprop(parseFloat(value) <= parseFloat(Reflect.field(f,"<")))) {
+ ++qualify;
+ }
+ if(Reflect.field(f,"=") != null && (testprop(value == Reflect.field(f,"=")) || testprop(parseFloat(value) == parseFloat(Reflect.field(f,"="))))) {
+ ++qualify;
+ }
+ }
+ }
+ return qualify > 0;
+ }
+};
+var xrfragment_Parser = $hx_exports["xrfragment"]["Parser"] = function() { };
+xrfragment_Parser.__name__ = true;
+xrfragment_Parser.parse = function(key,value,store,index) {
+ var Frag_h = Object.create(null);
+ Frag_h["#"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_PREDEFINED_VIEW | xrfragment_XRF.PV_EXECUTE;
+ Frag_h["src"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_URL;
+ Frag_h["href"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_URL | xrfragment_XRF.T_PREDEFINED_VIEW;
+ Frag_h["tag"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["pos"] = xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_VECTOR3 | xrfragment_XRF.T_STRING | xrfragment_XRF.T_STRING_OBJ | xrfragment_XRF.METADATA | xrfragment_XRF.NAVIGATOR;
+ Frag_h["rot"] = xrfragment_XRF.QUERY_OPERATOR | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_VECTOR3 | xrfragment_XRF.METADATA | xrfragment_XRF.NAVIGATOR;
+ Frag_h["t"] = xrfragment_XRF.ASSET | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_FLOAT | xrfragment_XRF.T_VECTOR2 | xrfragment_XRF.T_STRING | xrfragment_XRF.NAVIGATOR | xrfragment_XRF.METADATA;
+ Frag_h["tv"] = xrfragment_XRF.ASSET | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_FLOAT | xrfragment_XRF.T_VECTOR2 | xrfragment_XRF.T_VECTOR3 | xrfragment_XRF.NAVIGATOR | xrfragment_XRF.METADATA;
+ Frag_h["namespace"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["SPDX"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["unit"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["description"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["session"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_URL | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.NAVIGATOR | xrfragment_XRF.METADATA | xrfragment_XRF.PROMPT;
+ var keyStripped = key.replace(xrfragment_XRF.operators.r,"");
+ var isPVDynamic = key.length > 0 && !Object.prototype.hasOwnProperty.call(Frag_h,key);
+ var isPVDefault = value.length == 0 && key.length > 0 && key == "#";
+ if(isPVDynamic) {
+ var v = new xrfragment_XRF(key,xrfragment_XRF.PV_EXECUTE | xrfragment_XRF.NAVIGATOR,index);
+ v.validate(value);
+ store[keyStripped] = v;
+ return true;
+ }
+ var v = new xrfragment_XRF(key,Frag_h[key],index);
+ if(Object.prototype.hasOwnProperty.call(Frag_h,key)) {
+ if(!v.validate(value)) {
+ console.log("src/xrfragment/Parser.hx:66:","⚠ fragment '" + key + "' has incompatible value (" + value + ")");
+ return false;
+ }
+ store[keyStripped] = v;
+ if(xrfragment_Parser.debug) {
+ console.log("src/xrfragment/Parser.hx:70:","✔ " + key + ": " + v.string);
+ }
+ } else {
+ if(typeof(value) == "string") {
+ v.guessType(v,value);
+ }
+ v.noXRF = true;
+ store[keyStripped] = v;
+ }
+ return true;
+};
+var xrfragment_URI = $hx_exports["xrfragment"]["URI"] = function() { };
+xrfragment_URI.__name__ = true;
+xrfragment_URI.parse = function(url,filter) {
+ var store = { };
+ if(url == null || url.indexOf("#") == -1) {
+ return store;
+ }
+ var fragment = url.split("#");
+ var splitArray = fragment[1].split("&");
+ var _g = 0;
+ var _g1 = splitArray.length;
+ while(_g < _g1) {
+ var i = _g++;
+ var splitByEqual = splitArray[i].split("=");
+ var regexPlus = new EReg("\\+","g");
+ var key = splitByEqual[0];
+ var value = "";
+ if(splitByEqual.length > 1) {
+ var s = regexPlus.split(splitByEqual[1]).join(" ");
+ value = decodeURIComponent(s.split("+").join(" "));
+ }
+ var ok = xrfragment_Parser.parse(key,value,store,i);
+ }
+ if(filter != null && filter != 0) {
+ var _g = 0;
+ var _g1 = Reflect.fields(store);
+ while(_g < _g1.length) {
+ var key = _g1[_g];
+ ++_g;
+ var xrf = store[key];
+ if(!xrf.is(filter)) {
+ Reflect.deleteField(store,key);
+ }
+ }
+ }
+ return store;
+};
+var xrfragment_XRF = $hx_exports["xrfragment"]["XRF"] = function(_fragment,_flags,_index) {
+ this.fragment = _fragment;
+ this.flags = _flags;
+ this.index = _index;
+};
+xrfragment_XRF.__name__ = true;
+xrfragment_XRF.set = function(flag,flags) {
+ return flags | flag;
+};
+xrfragment_XRF.unset = function(flag,flags) {
+ return flags & ~flag;
+};
+xrfragment_XRF.prototype = {
+ is: function(flag) {
+ var v = this.flags;
+ if(!(typeof(v) == "number" && ((v | 0) === v))) {
+ this.flags = 0;
+ }
+ return (this.flags & flag) != 0;
+ }
+ ,validate: function(value) {
+ this.guessType(this,value);
+ var ok = true;
+ if(!this.is(xrfragment_XRF.T_FLOAT) && this.is(xrfragment_XRF.T_VECTOR2) && !(typeof(this.x) == "number" && typeof(this.y) == "number")) {
+ ok = false;
+ }
+ if(!(this.is(xrfragment_XRF.T_VECTOR2) || this.is(xrfragment_XRF.T_STRING)) && this.is(xrfragment_XRF.T_VECTOR3) && !(typeof(this.x) == "number" && typeof(this.y) == "number" && typeof(this.z) == "number")) {
+ ok = false;
+ }
+ return ok;
+ }
+ ,guessType: function(v,str) {
+ v.string = str;
+ if(typeof(str) != "string") {
+ return;
+ }
+ if(str.length > 0) {
+ if(str.split(",").length > 1) {
+ var xyzw = str.split(",");
+ if(xyzw.length > 0) {
+ v.x = parseFloat(xyzw[0]);
+ }
+ if(xyzw.length > 1) {
+ v.y = parseFloat(xyzw[1]);
+ }
+ if(xyzw.length > 2) {
+ v.z = parseFloat(xyzw[2]);
+ }
+ if(xyzw.length > 3) {
+ v.w = parseFloat(xyzw[3]);
+ }
+ }
+ if(xrfragment_XRF.isColor.match(str)) {
+ v.color = str;
+ }
+ if(xrfragment_XRF.isFloat.match(str)) {
+ v.x = parseFloat(str);
+ v.float = v.x;
+ }
+ if(xrfragment_XRF.isInt.match(str)) {
+ v.int = Std.parseInt(str);
+ v.x = v.int;
+ }
+ v.filter = new xrfragment_Filter(v.fragment + "=" + v.string);
+ } else {
+ v.filter = new xrfragment_Filter(v.fragment);
+ }
+ }
+};
+if(typeof(performance) != "undefined" ? typeof(performance.now) == "function" : false) {
+ HxOverrides.now = performance.now.bind(performance);
+}
+String.__name__ = true;
+Array.__name__ = true;
+js_Boot.__toStr = ({ }).toString;
+xrfragment_Parser.error = "";
+xrfragment_Parser.debug = false;
+xrfragment_XRF.ASSET = 1;
+xrfragment_XRF.PROP_BIND = 2;
+xrfragment_XRF.QUERY_OPERATOR = 4;
+xrfragment_XRF.PROMPT = 8;
+xrfragment_XRF.ROUNDROBIN = 16;
+xrfragment_XRF.NAVIGATOR = 32;
+xrfragment_XRF.METADATA = 64;
+xrfragment_XRF.PV_OVERRIDE = 128;
+xrfragment_XRF.PV_EXECUTE = 256;
+xrfragment_XRF.T_COLOR = 8192;
+xrfragment_XRF.T_INT = 16384;
+xrfragment_XRF.T_FLOAT = 32768;
+xrfragment_XRF.T_VECTOR2 = 65536;
+xrfragment_XRF.T_VECTOR3 = 131072;
+xrfragment_XRF.T_URL = 262144;
+xrfragment_XRF.T_PREDEFINED_VIEW = 524288;
+xrfragment_XRF.T_STRING = 1048576;
+xrfragment_XRF.T_STRING_OBJ = 2097152;
+xrfragment_XRF.T_STRING_OBJ_PROP = 4194304;
+xrfragment_XRF.isColor = new EReg("^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$","");
+xrfragment_XRF.isInt = new EReg("^[-0-9]+$","");
+xrfragment_XRF.isFloat = new EReg("^[-0-9]+\\.[0-9]+$","");
+xrfragment_XRF.isVector = new EReg("([,]+|\\w)","");
+xrfragment_XRF.isUrl = new EReg("(://)?\\..*","");
+xrfragment_XRF.isUrlOrPretypedView = new EReg("(^#|://)?\\..*","");
+xrfragment_XRF.isString = new EReg(".*","");
+xrfragment_XRF.operators = new EReg("(^-|[\\*]+)","");
+xrfragment_XRF.isProp = new EReg("^.*=[><=]?","");
+xrfragment_XRF.isExclude = new EReg("^-","");
+xrfragment_XRF.isDeep = new EReg("\\*","");
+xrfragment_XRF.isNumber = new EReg("^[0-9\\.]+$","");
+})({});
+var xrfragment = $hx_exports["xrfragment"];
+export default xrfragment;
+var $hx_exports = typeof exports != "undefined" ? exports : typeof window != "undefined" ? window : typeof self != "undefined" ? self : this;
+(function ($global) { "use strict";
+$hx_exports["xrfragment"] = $hx_exports["xrfragment"] || {};
+var EReg = function(r,opt) {
+ this.r = new RegExp(r,opt.split("u").join(""));
+};
+EReg.__name__ = true;
+EReg.prototype = {
+ match: function(s) {
+ if(this.r.global) {
+ this.r.lastIndex = 0;
+ }
+ this.r.m = this.r.exec(s);
+ this.r.s = s;
+ return this.r.m != null;
+ }
+ ,split: function(s) {
+ var d = "#__delim__#";
+ return s.replace(this.r,d).split(d);
+ }
+};
+var HxOverrides = function() { };
+HxOverrides.__name__ = true;
+HxOverrides.cca = function(s,index) {
+ var x = s.charCodeAt(index);
+ if(x != x) {
+ return undefined;
+ }
+ return x;
+};
+HxOverrides.substr = function(s,pos,len) {
+ if(len == null) {
+ len = s.length;
+ } else if(len < 0) {
+ if(pos == 0) {
+ len = s.length + len;
+ } else {
+ return "";
+ }
+ }
+ return s.substr(pos,len);
+};
+HxOverrides.now = function() {
+ return Date.now();
+};
+Math.__name__ = true;
+var Reflect = function() { };
+Reflect.__name__ = true;
+Reflect.field = function(o,field) {
+ try {
+ return o[field];
+ } catch( _g ) {
+ return null;
+ }
+};
+Reflect.fields = function(o) {
+ var a = [];
+ if(o != null) {
+ var hasOwnProperty = Object.prototype.hasOwnProperty;
+ for( var f in o ) {
+ if(f != "__id__" && f != "hx__closures__" && hasOwnProperty.call(o,f)) {
+ a.push(f);
+ }
+ }
+ }
+ return a;
+};
+Reflect.deleteField = function(o,field) {
+ if(!Object.prototype.hasOwnProperty.call(o,field)) {
+ return false;
+ }
+ delete(o[field]);
+ return true;
+};
+Reflect.copy = function(o) {
+ if(o == null) {
+ return null;
+ }
+ var o2 = { };
+ var _g = 0;
+ var _g1 = Reflect.fields(o);
+ while(_g < _g1.length) {
+ var f = _g1[_g];
+ ++_g;
+ o2[f] = Reflect.field(o,f);
+ }
+ return o2;
+};
+var Std = function() { };
+Std.__name__ = true;
+Std.string = function(s) {
+ return js_Boot.__string_rec(s,"");
+};
+Std.parseInt = function(x) {
+ if(x != null) {
+ var _g = 0;
+ var _g1 = x.length;
+ while(_g < _g1) {
+ var i = _g++;
+ var c = x.charCodeAt(i);
+ if(c <= 8 || c >= 14 && c != 32 && c != 45) {
+ var nc = x.charCodeAt(i + 1);
+ var v = parseInt(x,nc == 120 || nc == 88 ? 16 : 10);
+ if(isNaN(v)) {
+ return null;
+ } else {
+ return v;
+ }
+ }
+ }
+ }
+ return null;
+};
+var StringTools = function() { };
+StringTools.__name__ = true;
+StringTools.isSpace = function(s,pos) {
+ var c = HxOverrides.cca(s,pos);
+ if(!(c > 8 && c < 14)) {
+ return c == 32;
+ } else {
+ return true;
+ }
+};
+StringTools.ltrim = function(s) {
+ var l = s.length;
+ var r = 0;
+ while(r < l && StringTools.isSpace(s,r)) ++r;
+ if(r > 0) {
+ return HxOverrides.substr(s,r,l - r);
+ } else {
+ return s;
+ }
+};
+StringTools.rtrim = function(s) {
+ var l = s.length;
+ var r = 0;
+ while(r < l && StringTools.isSpace(s,l - r - 1)) ++r;
+ if(r > 0) {
+ return HxOverrides.substr(s,0,l - r);
+ } else {
+ return s;
+ }
+};
+StringTools.trim = function(s) {
+ return StringTools.ltrim(StringTools.rtrim(s));
+};
+var haxe_iterators_ArrayIterator = function(array) {
+ this.current = 0;
+ this.array = array;
+};
+haxe_iterators_ArrayIterator.__name__ = true;
+haxe_iterators_ArrayIterator.prototype = {
+ hasNext: function() {
+ return this.current < this.array.length;
+ }
+ ,next: function() {
+ return this.array[this.current++];
+ }
+};
+var js_Boot = function() { };
+js_Boot.__name__ = true;
+js_Boot.__string_rec = function(o,s) {
+ if(o == null) {
+ return "null";
+ }
+ if(s.length >= 5) {
+ return "<...>";
+ }
+ var t = typeof(o);
+ if(t == "function" && (o.__name__ || o.__ename__)) {
+ t = "object";
+ }
+ switch(t) {
+ case "function":
+ return "";
+ case "object":
+ if(((o) instanceof Array)) {
+ var str = "[";
+ s += "\t";
+ var _g = 0;
+ var _g1 = o.length;
+ while(_g < _g1) {
+ var i = _g++;
+ str += (i > 0 ? "," : "") + js_Boot.__string_rec(o[i],s);
+ }
+ str += "]";
+ return str;
+ }
+ var tostr;
+ try {
+ tostr = o.toString;
+ } catch( _g ) {
+ return "???";
+ }
+ if(tostr != null && tostr != Object.toString && typeof(tostr) == "function") {
+ var s2 = o.toString();
+ if(s2 != "[object Object]") {
+ return s2;
+ }
+ }
+ var str = "{\n";
+ s += "\t";
+ var hasp = o.hasOwnProperty != null;
+ var k = null;
+ for( k in o ) {
+ if(hasp && !o.hasOwnProperty(k)) {
+ continue;
+ }
+ if(k == "prototype" || k == "__class__" || k == "__super__" || k == "__interfaces__" || k == "__properties__") {
+ continue;
+ }
+ if(str.length != 2) {
+ str += ", \n";
+ }
+ str += s + k + " : " + js_Boot.__string_rec(o[k],s);
+ }
+ s = s.substring(1);
+ str += "\n" + s + "}";
+ return str;
+ case "string":
+ return o;
+ default:
+ return String(o);
+ }
+};
+var xrfragment_Filter = $hx_exports["xrfragment"]["Filter"] = function(str) {
+ this.q = { };
+ this.str = "";
+ if(str != null) {
+ this.parse(str);
+ }
+};
+xrfragment_Filter.__name__ = true;
+xrfragment_Filter.prototype = {
+ toObject: function() {
+ return Reflect.copy(this.q);
+ }
+ ,get: function() {
+ return Reflect.copy(this.q);
+ }
+ ,parse: function(str) {
+ var token = str.split(" ");
+ var q = { };
+ var process = function(str,prefix) {
+ if(prefix == null) {
+ prefix = "";
+ }
+ str = StringTools.trim(str);
+ var k = str.split("=")[0];
+ var v = str.split("=")[1];
+ var filter = { };
+ if(q[prefix + k]) {
+ filter = q[prefix + k];
+ }
+ if(xrfragment_XRF.isProp.match(str)) {
+ var oper = "";
+ if(str.indexOf(">") != -1) {
+ oper = ">";
+ }
+ if(str.indexOf("<") != -1) {
+ oper = "<";
+ }
+ if(xrfragment_XRF.isExclude.match(k)) {
+ k = HxOverrides.substr(k,1,null);
+ }
+ v = HxOverrides.substr(v,oper.length,null);
+ if(oper.length == 0) {
+ oper = "=";
+ }
+ var rule = { };
+ if(xrfragment_XRF.isNumber.match(v)) {
+ rule[oper] = parseFloat(v);
+ } else {
+ rule[oper] = v;
+ }
+ q["expr"] = rule;
+ }
+ var value = xrfragment_XRF.isDeep.match(str) ? k.split("*").length - 1 : 0;
+ q["deep"] = value;
+ var value = xrfragment_XRF.isExclude.match(str) ? false : true;
+ q["show"] = value;
+ var value = k.replace(xrfragment_XRF.operators.r,"");
+ q["key"] = value;
+ q["value"] = v;
+ };
+ var _g = 0;
+ var _g1 = token.length;
+ while(_g < _g1) {
+ var i = _g++;
+ process(token[i]);
+ }
+ return this.q = q;
+ }
+ ,test: function(obj) {
+ var qualify = false;
+ var _g = 0;
+ var _g1 = Reflect.fields(obj);
+ while(_g < _g1.length) {
+ var k = _g1[_g];
+ ++_g;
+ var v = Std.string(Reflect.field(obj,k));
+ if(this.testProperty(k,v)) {
+ qualify = true;
+ }
+ }
+ var _g = 0;
+ var _g1 = Reflect.fields(obj);
+ while(_g < _g1.length) {
+ var k = _g1[_g];
+ ++_g;
+ var v = Std.string(Reflect.field(obj,k));
+ if(this.testProperty(k,v,true)) {
+ qualify = false;
+ }
+ }
+ return qualify;
+ }
+ ,testProperty: function(property,value,exclude) {
+ var conds = 0;
+ var fails = 0;
+ var qualify = 0;
+ var testprop = function(expr) {
+ conds += 1;
+ fails += expr ? 0 : 1;
+ return expr;
+ };
+ if(this.q[value] != null) {
+ var v = this.q[value];
+ if(v[property] != null) {
+ return v[property];
+ }
+ }
+ if(Reflect.field(this.q,"expr")) {
+ var f = Reflect.field(this.q,"expr");
+ if(!Reflect.field(this.q,"show")) {
+ if(Reflect.field(f,"!=") != null && testprop((value == null ? "null" : "" + value) == Std.string(Reflect.field(f,"!="))) && exclude) {
+ ++qualify;
+ }
+ } else {
+ if(Reflect.field(f,"*") != null && testprop(parseFloat(value) != null)) {
+ ++qualify;
+ }
+ if(Reflect.field(f,">") != null && testprop(parseFloat(value) >= parseFloat(Reflect.field(f,">")))) {
+ ++qualify;
+ }
+ if(Reflect.field(f,"<") != null && testprop(parseFloat(value) <= parseFloat(Reflect.field(f,"<")))) {
+ ++qualify;
+ }
+ if(Reflect.field(f,"=") != null && (testprop(value == Reflect.field(f,"=")) || testprop(parseFloat(value) == parseFloat(Reflect.field(f,"="))))) {
+ ++qualify;
+ }
+ }
+ }
+ return qualify > 0;
+ }
+};
+var xrfragment_Parser = $hx_exports["xrfragment"]["Parser"] = function() { };
+xrfragment_Parser.__name__ = true;
+xrfragment_Parser.parse = function(key,value,store,index) {
+ var Frag_h = Object.create(null);
+ Frag_h["#"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_PREDEFINED_VIEW | xrfragment_XRF.PV_EXECUTE;
+ Frag_h["src"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_URL;
+ Frag_h["href"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_URL | xrfragment_XRF.T_PREDEFINED_VIEW;
+ Frag_h["tag"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["pos"] = xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_VECTOR3 | xrfragment_XRF.T_STRING | xrfragment_XRF.T_STRING_OBJ | xrfragment_XRF.METADATA | xrfragment_XRF.NAVIGATOR;
+ Frag_h["rot"] = xrfragment_XRF.QUERY_OPERATOR | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_VECTOR3 | xrfragment_XRF.METADATA | xrfragment_XRF.NAVIGATOR;
+ Frag_h["t"] = xrfragment_XRF.ASSET | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_FLOAT | xrfragment_XRF.T_VECTOR2 | xrfragment_XRF.T_STRING | xrfragment_XRF.NAVIGATOR | xrfragment_XRF.METADATA;
+ Frag_h["tv"] = xrfragment_XRF.ASSET | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_FLOAT | xrfragment_XRF.T_VECTOR2 | xrfragment_XRF.T_VECTOR3 | xrfragment_XRF.NAVIGATOR | xrfragment_XRF.METADATA;
+ Frag_h["namespace"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["SPDX"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["unit"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["description"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["session"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_URL | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.NAVIGATOR | xrfragment_XRF.METADATA | xrfragment_XRF.PROMPT;
+ var keyStripped = key.replace(xrfragment_XRF.operators.r,"");
+ var isPVDynamic = key.length > 0 && !Object.prototype.hasOwnProperty.call(Frag_h,key);
+ var isPVDefault = value.length == 0 && key.length > 0 && key == "#";
+ if(isPVDynamic) {
+ var v = new xrfragment_XRF(key,xrfragment_XRF.PV_EXECUTE | xrfragment_XRF.NAVIGATOR,index);
+ v.validate(value);
+ store[keyStripped] = v;
+ return true;
+ }
+ var v = new xrfragment_XRF(key,Frag_h[key],index);
+ if(Object.prototype.hasOwnProperty.call(Frag_h,key)) {
+ if(!v.validate(value)) {
+ console.log("src/xrfragment/Parser.hx:66:","⚠ fragment '" + key + "' has incompatible value (" + value + ")");
+ return false;
+ }
+ store[keyStripped] = v;
+ if(xrfragment_Parser.debug) {
+ console.log("src/xrfragment/Parser.hx:70:","✔ " + key + ": " + v.string);
+ }
+ } else {
+ if(typeof(value) == "string") {
+ v.guessType(v,value);
+ }
+ v.noXRF = true;
+ store[keyStripped] = v;
+ }
+ return true;
+};
+var xrfragment_URI = $hx_exports["xrfragment"]["URI"] = function() { };
+xrfragment_URI.__name__ = true;
+xrfragment_URI.parse = function(url,filter) {
+ var store = { };
+ if(url == null || url.indexOf("#") == -1) {
+ return store;
+ }
+ var fragment = url.split("#");
+ var splitArray = fragment[1].split("&");
+ var _g = 0;
+ var _g1 = splitArray.length;
+ while(_g < _g1) {
+ var i = _g++;
+ var splitByEqual = splitArray[i].split("=");
+ var regexPlus = new EReg("\\+","g");
+ var key = splitByEqual[0];
+ var value = "";
+ if(splitByEqual.length > 1) {
+ var s = regexPlus.split(splitByEqual[1]).join(" ");
+ value = decodeURIComponent(s.split("+").join(" "));
+ }
+ var ok = xrfragment_Parser.parse(key,value,store,i);
+ }
+ if(filter != null && filter != 0) {
+ var _g = 0;
+ var _g1 = Reflect.fields(store);
+ while(_g < _g1.length) {
+ var key = _g1[_g];
+ ++_g;
+ var xrf = store[key];
+ if(!xrf.is(filter)) {
+ Reflect.deleteField(store,key);
+ }
+ }
+ }
+ return store;
+};
+var xrfragment_XRF = $hx_exports["xrfragment"]["XRF"] = function(_fragment,_flags,_index) {
+ this.fragment = _fragment;
+ this.flags = _flags;
+ this.index = _index;
+};
+xrfragment_XRF.__name__ = true;
+xrfragment_XRF.set = function(flag,flags) {
+ return flags | flag;
+};
+xrfragment_XRF.unset = function(flag,flags) {
+ return flags & ~flag;
+};
+xrfragment_XRF.prototype = {
+ is: function(flag) {
+ var v = this.flags;
+ if(!(typeof(v) == "number" && ((v | 0) === v))) {
+ this.flags = 0;
+ }
+ return (this.flags & flag) != 0;
+ }
+ ,validate: function(value) {
+ this.guessType(this,value);
+ var ok = true;
+ if(!this.is(xrfragment_XRF.T_FLOAT) && this.is(xrfragment_XRF.T_VECTOR2) && !(typeof(this.x) == "number" && typeof(this.y) == "number")) {
+ ok = false;
+ }
+ if(!(this.is(xrfragment_XRF.T_VECTOR2) || this.is(xrfragment_XRF.T_STRING)) && this.is(xrfragment_XRF.T_VECTOR3) && !(typeof(this.x) == "number" && typeof(this.y) == "number" && typeof(this.z) == "number")) {
+ ok = false;
+ }
+ return ok;
+ }
+ ,guessType: function(v,str) {
+ v.string = str;
+ if(typeof(str) != "string") {
+ return;
+ }
+ if(str.length > 0) {
+ if(str.split(",").length > 1) {
+ var xyzw = str.split(",");
+ if(xyzw.length > 0) {
+ v.x = parseFloat(xyzw[0]);
+ }
+ if(xyzw.length > 1) {
+ v.y = parseFloat(xyzw[1]);
+ }
+ if(xyzw.length > 2) {
+ v.z = parseFloat(xyzw[2]);
+ }
+ if(xyzw.length > 3) {
+ v.w = parseFloat(xyzw[3]);
+ }
+ }
+ if(xrfragment_XRF.isColor.match(str)) {
+ v.color = str;
+ }
+ if(xrfragment_XRF.isFloat.match(str)) {
+ v.x = parseFloat(str);
+ v.float = v.x;
+ }
+ if(xrfragment_XRF.isInt.match(str)) {
+ v.int = Std.parseInt(str);
+ v.x = v.int;
+ }
+ v.filter = new xrfragment_Filter(v.fragment + "=" + v.string);
+ } else {
+ v.filter = new xrfragment_Filter(v.fragment);
+ }
+ }
+};
+if(typeof(performance) != "undefined" ? typeof(performance.now) == "function" : false) {
+ HxOverrides.now = performance.now.bind(performance);
+}
+String.__name__ = true;
+Array.__name__ = true;
+js_Boot.__toStr = ({ }).toString;
+xrfragment_Parser.error = "";
+xrfragment_Parser.debug = false;
+xrfragment_XRF.ASSET = 1;
+xrfragment_XRF.PROP_BIND = 2;
+xrfragment_XRF.QUERY_OPERATOR = 4;
+xrfragment_XRF.PROMPT = 8;
+xrfragment_XRF.ROUNDROBIN = 16;
+xrfragment_XRF.NAVIGATOR = 32;
+xrfragment_XRF.METADATA = 64;
+xrfragment_XRF.PV_OVERRIDE = 128;
+xrfragment_XRF.PV_EXECUTE = 256;
+xrfragment_XRF.T_COLOR = 8192;
+xrfragment_XRF.T_INT = 16384;
+xrfragment_XRF.T_FLOAT = 32768;
+xrfragment_XRF.T_VECTOR2 = 65536;
+xrfragment_XRF.T_VECTOR3 = 131072;
+xrfragment_XRF.T_URL = 262144;
+xrfragment_XRF.T_PREDEFINED_VIEW = 524288;
+xrfragment_XRF.T_STRING = 1048576;
+xrfragment_XRF.T_STRING_OBJ = 2097152;
+xrfragment_XRF.T_STRING_OBJ_PROP = 4194304;
+xrfragment_XRF.isColor = new EReg("^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$","");
+xrfragment_XRF.isInt = new EReg("^[-0-9]+$","");
+xrfragment_XRF.isFloat = new EReg("^[-0-9]+\\.[0-9]+$","");
+xrfragment_XRF.isVector = new EReg("([,]+|\\w)","");
+xrfragment_XRF.isUrl = new EReg("(://)?\\..*","");
+xrfragment_XRF.isUrlOrPretypedView = new EReg("(^#|://)?\\..*","");
+xrfragment_XRF.isString = new EReg(".*","");
+xrfragment_XRF.operators = new EReg("(^-|[\\*]+)","");
+xrfragment_XRF.isProp = new EReg("^.*=[><=]?","");
+xrfragment_XRF.isExclude = new EReg("^-","");
+xrfragment_XRF.isDeep = new EReg("\\*","");
+xrfragment_XRF.isNumber = new EReg("^[0-9\\.]+$","");
+})({});
+var xrfragment = $hx_exports["xrfragment"];
+export default xrfragment;
+var $hx_exports = typeof exports != "undefined" ? exports : typeof window != "undefined" ? window : typeof self != "undefined" ? self : this;
+(function ($global) { "use strict";
+$hx_exports["xrfragment"] = $hx_exports["xrfragment"] || {};
+var EReg = function(r,opt) {
+ this.r = new RegExp(r,opt.split("u").join(""));
+};
+EReg.__name__ = true;
+EReg.prototype = {
+ match: function(s) {
+ if(this.r.global) {
+ this.r.lastIndex = 0;
+ }
+ this.r.m = this.r.exec(s);
+ this.r.s = s;
+ return this.r.m != null;
+ }
+ ,split: function(s) {
+ var d = "#__delim__#";
+ return s.replace(this.r,d).split(d);
+ }
+};
+var HxOverrides = function() { };
+HxOverrides.__name__ = true;
+HxOverrides.cca = function(s,index) {
+ var x = s.charCodeAt(index);
+ if(x != x) {
+ return undefined;
+ }
+ return x;
+};
+HxOverrides.substr = function(s,pos,len) {
+ if(len == null) {
+ len = s.length;
+ } else if(len < 0) {
+ if(pos == 0) {
+ len = s.length + len;
+ } else {
+ return "";
+ }
+ }
+ return s.substr(pos,len);
+};
+HxOverrides.now = function() {
+ return Date.now();
+};
+Math.__name__ = true;
+var Reflect = function() { };
+Reflect.__name__ = true;
+Reflect.field = function(o,field) {
+ try {
+ return o[field];
+ } catch( _g ) {
+ return null;
+ }
+};
+Reflect.fields = function(o) {
+ var a = [];
+ if(o != null) {
+ var hasOwnProperty = Object.prototype.hasOwnProperty;
+ for( var f in o ) {
+ if(f != "__id__" && f != "hx__closures__" && hasOwnProperty.call(o,f)) {
+ a.push(f);
+ }
+ }
+ }
+ return a;
+};
+Reflect.deleteField = function(o,field) {
+ if(!Object.prototype.hasOwnProperty.call(o,field)) {
+ return false;
+ }
+ delete(o[field]);
+ return true;
+};
+Reflect.copy = function(o) {
+ if(o == null) {
+ return null;
+ }
+ var o2 = { };
+ var _g = 0;
+ var _g1 = Reflect.fields(o);
+ while(_g < _g1.length) {
+ var f = _g1[_g];
+ ++_g;
+ o2[f] = Reflect.field(o,f);
+ }
+ return o2;
+};
+var Std = function() { };
+Std.__name__ = true;
+Std.string = function(s) {
+ return js_Boot.__string_rec(s,"");
+};
+Std.parseInt = function(x) {
+ if(x != null) {
+ var _g = 0;
+ var _g1 = x.length;
+ while(_g < _g1) {
+ var i = _g++;
+ var c = x.charCodeAt(i);
+ if(c <= 8 || c >= 14 && c != 32 && c != 45) {
+ var nc = x.charCodeAt(i + 1);
+ var v = parseInt(x,nc == 120 || nc == 88 ? 16 : 10);
+ if(isNaN(v)) {
+ return null;
+ } else {
+ return v;
+ }
+ }
+ }
+ }
+ return null;
+};
+var StringTools = function() { };
+StringTools.__name__ = true;
+StringTools.isSpace = function(s,pos) {
+ var c = HxOverrides.cca(s,pos);
+ if(!(c > 8 && c < 14)) {
+ return c == 32;
+ } else {
+ return true;
+ }
+};
+StringTools.ltrim = function(s) {
+ var l = s.length;
+ var r = 0;
+ while(r < l && StringTools.isSpace(s,r)) ++r;
+ if(r > 0) {
+ return HxOverrides.substr(s,r,l - r);
+ } else {
+ return s;
+ }
+};
+StringTools.rtrim = function(s) {
+ var l = s.length;
+ var r = 0;
+ while(r < l && StringTools.isSpace(s,l - r - 1)) ++r;
+ if(r > 0) {
+ return HxOverrides.substr(s,0,l - r);
+ } else {
+ return s;
+ }
+};
+StringTools.trim = function(s) {
+ return StringTools.ltrim(StringTools.rtrim(s));
+};
+var haxe_iterators_ArrayIterator = function(array) {
+ this.current = 0;
+ this.array = array;
+};
+haxe_iterators_ArrayIterator.__name__ = true;
+haxe_iterators_ArrayIterator.prototype = {
+ hasNext: function() {
+ return this.current < this.array.length;
+ }
+ ,next: function() {
+ return this.array[this.current++];
+ }
+};
+var js_Boot = function() { };
+js_Boot.__name__ = true;
+js_Boot.__string_rec = function(o,s) {
+ if(o == null) {
+ return "null";
+ }
+ if(s.length >= 5) {
+ return "<...>";
+ }
+ var t = typeof(o);
+ if(t == "function" && (o.__name__ || o.__ename__)) {
+ t = "object";
+ }
+ switch(t) {
+ case "function":
+ return "";
+ case "object":
+ if(((o) instanceof Array)) {
+ var str = "[";
+ s += "\t";
+ var _g = 0;
+ var _g1 = o.length;
+ while(_g < _g1) {
+ var i = _g++;
+ str += (i > 0 ? "," : "") + js_Boot.__string_rec(o[i],s);
+ }
+ str += "]";
+ return str;
+ }
+ var tostr;
+ try {
+ tostr = o.toString;
+ } catch( _g ) {
+ return "???";
+ }
+ if(tostr != null && tostr != Object.toString && typeof(tostr) == "function") {
+ var s2 = o.toString();
+ if(s2 != "[object Object]") {
+ return s2;
+ }
+ }
+ var str = "{\n";
+ s += "\t";
+ var hasp = o.hasOwnProperty != null;
+ var k = null;
+ for( k in o ) {
+ if(hasp && !o.hasOwnProperty(k)) {
+ continue;
+ }
+ if(k == "prototype" || k == "__class__" || k == "__super__" || k == "__interfaces__" || k == "__properties__") {
+ continue;
+ }
+ if(str.length != 2) {
+ str += ", \n";
+ }
+ str += s + k + " : " + js_Boot.__string_rec(o[k],s);
+ }
+ s = s.substring(1);
+ str += "\n" + s + "}";
+ return str;
+ case "string":
+ return o;
+ default:
+ return String(o);
+ }
+};
+var xrfragment_Filter = $hx_exports["xrfragment"]["Filter"] = function(str) {
+ this.q = { };
+ this.str = "";
+ if(str != null) {
+ this.parse(str);
+ }
+};
+xrfragment_Filter.__name__ = true;
+xrfragment_Filter.prototype = {
+ toObject: function() {
+ return Reflect.copy(this.q);
+ }
+ ,get: function() {
+ return Reflect.copy(this.q);
+ }
+ ,parse: function(str) {
+ var token = str.split(" ");
+ var q = { };
+ var process = function(str,prefix) {
+ if(prefix == null) {
+ prefix = "";
+ }
+ str = StringTools.trim(str);
+ var k = str.split("=")[0];
+ var v = str.split("=")[1];
+ var filter = { };
+ if(q[prefix + k]) {
+ filter = q[prefix + k];
+ }
+ if(xrfragment_XRF.isProp.match(str)) {
+ var oper = "";
+ if(str.indexOf(">") != -1) {
+ oper = ">";
+ }
+ if(str.indexOf("<") != -1) {
+ oper = "<";
+ }
+ if(xrfragment_XRF.isExclude.match(k)) {
+ k = HxOverrides.substr(k,1,null);
+ }
+ v = HxOverrides.substr(v,oper.length,null);
+ if(oper.length == 0) {
+ oper = "=";
+ }
+ var rule = { };
+ if(xrfragment_XRF.isNumber.match(v)) {
+ rule[oper] = parseFloat(v);
+ } else {
+ rule[oper] = v;
+ }
+ q["expr"] = rule;
+ }
+ var value = xrfragment_XRF.isDeep.match(str) ? k.split("*").length - 1 : 0;
+ q["deep"] = value;
+ var value = xrfragment_XRF.isExclude.match(str) ? false : true;
+ q["show"] = value;
+ var value = k.replace(xrfragment_XRF.operators.r,"");
+ q["key"] = value;
+ q["value"] = v;
+ };
+ var _g = 0;
+ var _g1 = token.length;
+ while(_g < _g1) {
+ var i = _g++;
+ process(token[i]);
+ }
+ return this.q = q;
+ }
+ ,test: function(obj) {
+ var qualify = false;
+ var _g = 0;
+ var _g1 = Reflect.fields(obj);
+ while(_g < _g1.length) {
+ var k = _g1[_g];
+ ++_g;
+ var v = Std.string(Reflect.field(obj,k));
+ if(this.testProperty(k,v)) {
+ qualify = true;
+ }
+ }
+ var _g = 0;
+ var _g1 = Reflect.fields(obj);
+ while(_g < _g1.length) {
+ var k = _g1[_g];
+ ++_g;
+ var v = Std.string(Reflect.field(obj,k));
+ if(this.testProperty(k,v,true)) {
+ qualify = false;
+ }
+ }
+ return qualify;
+ }
+ ,testProperty: function(property,value,exclude) {
+ var conds = 0;
+ var fails = 0;
+ var qualify = 0;
+ var testprop = function(expr) {
+ conds += 1;
+ fails += expr ? 0 : 1;
+ return expr;
+ };
+ if(this.q[value] != null) {
+ var v = this.q[value];
+ if(v[property] != null) {
+ return v[property];
+ }
+ }
+ if(Reflect.field(this.q,"expr")) {
+ var f = Reflect.field(this.q,"expr");
+ if(!Reflect.field(this.q,"show")) {
+ if(Reflect.field(f,"!=") != null && testprop((value == null ? "null" : "" + value) == Std.string(Reflect.field(f,"!="))) && exclude) {
+ ++qualify;
+ }
+ } else {
+ if(Reflect.field(f,"*") != null && testprop(parseFloat(value) != null)) {
+ ++qualify;
+ }
+ if(Reflect.field(f,">") != null && testprop(parseFloat(value) >= parseFloat(Reflect.field(f,">")))) {
+ ++qualify;
+ }
+ if(Reflect.field(f,"<") != null && testprop(parseFloat(value) <= parseFloat(Reflect.field(f,"<")))) {
+ ++qualify;
+ }
+ if(Reflect.field(f,"=") != null && (testprop(value == Reflect.field(f,"=")) || testprop(parseFloat(value) == parseFloat(Reflect.field(f,"="))))) {
+ ++qualify;
+ }
+ }
+ }
+ return qualify > 0;
+ }
+};
+var xrfragment_Parser = $hx_exports["xrfragment"]["Parser"] = function() { };
+xrfragment_Parser.__name__ = true;
+xrfragment_Parser.parse = function(key,value,store,index) {
+ var Frag_h = Object.create(null);
+ Frag_h["#"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_PREDEFINED_VIEW | xrfragment_XRF.PV_EXECUTE;
+ Frag_h["src"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_URL;
+ Frag_h["href"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_URL | xrfragment_XRF.T_PREDEFINED_VIEW;
+ Frag_h["tag"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["pos"] = xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_VECTOR3 | xrfragment_XRF.T_STRING | xrfragment_XRF.T_STRING_OBJ | xrfragment_XRF.METADATA | xrfragment_XRF.NAVIGATOR;
+ Frag_h["rot"] = xrfragment_XRF.QUERY_OPERATOR | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_VECTOR3 | xrfragment_XRF.METADATA | xrfragment_XRF.NAVIGATOR;
+ Frag_h["t"] = xrfragment_XRF.ASSET | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_FLOAT | xrfragment_XRF.T_VECTOR2 | xrfragment_XRF.T_STRING | xrfragment_XRF.NAVIGATOR | xrfragment_XRF.METADATA;
+ Frag_h["tv"] = xrfragment_XRF.ASSET | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_FLOAT | xrfragment_XRF.T_VECTOR2 | xrfragment_XRF.T_VECTOR3 | xrfragment_XRF.NAVIGATOR | xrfragment_XRF.METADATA;
+ Frag_h["namespace"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["SPDX"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["unit"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["description"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["session"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_URL | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.NAVIGATOR | xrfragment_XRF.METADATA | xrfragment_XRF.PROMPT;
+ var keyStripped = key.replace(xrfragment_XRF.operators.r,"");
+ var isPVDynamic = key.length > 0 && !Object.prototype.hasOwnProperty.call(Frag_h,key);
+ var isPVDefault = value.length == 0 && key.length > 0 && key == "#";
+ if(isPVDynamic) {
+ var v = new xrfragment_XRF(key,xrfragment_XRF.PV_EXECUTE | xrfragment_XRF.NAVIGATOR,index);
+ v.validate(value);
+ store[keyStripped] = v;
+ return true;
+ }
+ var v = new xrfragment_XRF(key,Frag_h[key],index);
+ if(Object.prototype.hasOwnProperty.call(Frag_h,key)) {
+ if(!v.validate(value)) {
+ console.log("src/xrfragment/Parser.hx:66:","⚠ fragment '" + key + "' has incompatible value (" + value + ")");
+ return false;
+ }
+ store[keyStripped] = v;
+ if(xrfragment_Parser.debug) {
+ console.log("src/xrfragment/Parser.hx:70:","✔ " + key + ": " + v.string);
+ }
+ } else {
+ if(typeof(value) == "string") {
+ v.guessType(v,value);
+ }
+ v.noXRF = true;
+ store[keyStripped] = v;
+ }
+ return true;
+};
+var xrfragment_URI = $hx_exports["xrfragment"]["URI"] = function() { };
+xrfragment_URI.__name__ = true;
+xrfragment_URI.parse = function(url,filter) {
+ var store = { };
+ if(url == null || url.indexOf("#") == -1) {
+ return store;
+ }
+ var fragment = url.split("#");
+ var splitArray = fragment[1].split("&");
+ var _g = 0;
+ var _g1 = splitArray.length;
+ while(_g < _g1) {
+ var i = _g++;
+ var splitByEqual = splitArray[i].split("=");
+ var regexPlus = new EReg("\\+","g");
+ var key = splitByEqual[0];
+ var value = "";
+ if(splitByEqual.length > 1) {
+ var s = regexPlus.split(splitByEqual[1]).join(" ");
+ value = decodeURIComponent(s.split("+").join(" "));
+ }
+ var ok = xrfragment_Parser.parse(key,value,store,i);
+ }
+ if(filter != null && filter != 0) {
+ var _g = 0;
+ var _g1 = Reflect.fields(store);
+ while(_g < _g1.length) {
+ var key = _g1[_g];
+ ++_g;
+ var xrf = store[key];
+ if(!xrf.is(filter)) {
+ Reflect.deleteField(store,key);
+ }
+ }
+ }
+ return store;
+};
+var xrfragment_XRF = $hx_exports["xrfragment"]["XRF"] = function(_fragment,_flags,_index) {
+ this.fragment = _fragment;
+ this.flags = _flags;
+ this.index = _index;
+};
+xrfragment_XRF.__name__ = true;
+xrfragment_XRF.set = function(flag,flags) {
+ return flags | flag;
+};
+xrfragment_XRF.unset = function(flag,flags) {
+ return flags & ~flag;
+};
+xrfragment_XRF.prototype = {
+ is: function(flag) {
+ var v = this.flags;
+ if(!(typeof(v) == "number" && ((v | 0) === v))) {
+ this.flags = 0;
+ }
+ return (this.flags & flag) != 0;
+ }
+ ,validate: function(value) {
+ this.guessType(this,value);
+ var ok = true;
+ if(!this.is(xrfragment_XRF.T_FLOAT) && this.is(xrfragment_XRF.T_VECTOR2) && !(typeof(this.x) == "number" && typeof(this.y) == "number")) {
+ ok = false;
+ }
+ if(!(this.is(xrfragment_XRF.T_VECTOR2) || this.is(xrfragment_XRF.T_STRING)) && this.is(xrfragment_XRF.T_VECTOR3) && !(typeof(this.x) == "number" && typeof(this.y) == "number" && typeof(this.z) == "number")) {
+ ok = false;
+ }
+ return ok;
+ }
+ ,guessType: function(v,str) {
+ v.string = str;
+ if(typeof(str) != "string") {
+ return;
+ }
+ if(str.length > 0) {
+ if(str.split(",").length > 1) {
+ var xyzw = str.split(",");
+ if(xyzw.length > 0) {
+ v.x = parseFloat(xyzw[0]);
+ }
+ if(xyzw.length > 1) {
+ v.y = parseFloat(xyzw[1]);
+ }
+ if(xyzw.length > 2) {
+ v.z = parseFloat(xyzw[2]);
+ }
+ if(xyzw.length > 3) {
+ v.w = parseFloat(xyzw[3]);
+ }
+ }
+ if(xrfragment_XRF.isColor.match(str)) {
+ v.color = str;
+ }
+ if(xrfragment_XRF.isFloat.match(str)) {
+ v.x = parseFloat(str);
+ v.float = v.x;
+ }
+ if(xrfragment_XRF.isInt.match(str)) {
+ v.int = Std.parseInt(str);
+ v.x = v.int;
+ }
+ v.filter = new xrfragment_Filter(v.fragment + "=" + v.string);
+ } else {
+ v.filter = new xrfragment_Filter(v.fragment);
+ }
+ }
+};
+if(typeof(performance) != "undefined" ? typeof(performance.now) == "function" : false) {
+ HxOverrides.now = performance.now.bind(performance);
+}
+String.__name__ = true;
+Array.__name__ = true;
+js_Boot.__toStr = ({ }).toString;
+xrfragment_Parser.error = "";
+xrfragment_Parser.debug = false;
+xrfragment_XRF.ASSET = 1;
+xrfragment_XRF.PROP_BIND = 2;
+xrfragment_XRF.QUERY_OPERATOR = 4;
+xrfragment_XRF.PROMPT = 8;
+xrfragment_XRF.ROUNDROBIN = 16;
+xrfragment_XRF.NAVIGATOR = 32;
+xrfragment_XRF.METADATA = 64;
+xrfragment_XRF.PV_OVERRIDE = 128;
+xrfragment_XRF.PV_EXECUTE = 256;
+xrfragment_XRF.T_COLOR = 8192;
+xrfragment_XRF.T_INT = 16384;
+xrfragment_XRF.T_FLOAT = 32768;
+xrfragment_XRF.T_VECTOR2 = 65536;
+xrfragment_XRF.T_VECTOR3 = 131072;
+xrfragment_XRF.T_URL = 262144;
+xrfragment_XRF.T_PREDEFINED_VIEW = 524288;
+xrfragment_XRF.T_STRING = 1048576;
+xrfragment_XRF.T_STRING_OBJ = 2097152;
+xrfragment_XRF.T_STRING_OBJ_PROP = 4194304;
+xrfragment_XRF.isColor = new EReg("^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$","");
+xrfragment_XRF.isInt = new EReg("^[-0-9]+$","");
+xrfragment_XRF.isFloat = new EReg("^[-0-9]+\\.[0-9]+$","");
+xrfragment_XRF.isVector = new EReg("([,]+|\\w)","");
+xrfragment_XRF.isUrl = new EReg("(://)?\\..*","");
+xrfragment_XRF.isUrlOrPretypedView = new EReg("(^#|://)?\\..*","");
+xrfragment_XRF.isString = new EReg(".*","");
+xrfragment_XRF.operators = new EReg("(^-|[\\*]+)","");
+xrfragment_XRF.isProp = new EReg("^.*=[><=]?","");
+xrfragment_XRF.isExclude = new EReg("^-","");
+xrfragment_XRF.isDeep = new EReg("\\*","");
+xrfragment_XRF.isNumber = new EReg("^[0-9\\.]+$","");
+})({});
+var xrfragment = $hx_exports["xrfragment"];
+export default xrfragment;
+var $hx_exports = typeof exports != "undefined" ? exports : typeof window != "undefined" ? window : typeof self != "undefined" ? self : this;
+(function ($global) { "use strict";
+$hx_exports["xrfragment"] = $hx_exports["xrfragment"] || {};
+var EReg = function(r,opt) {
+ this.r = new RegExp(r,opt.split("u").join(""));
+};
+EReg.__name__ = true;
+EReg.prototype = {
+ match: function(s) {
+ if(this.r.global) {
+ this.r.lastIndex = 0;
+ }
+ this.r.m = this.r.exec(s);
+ this.r.s = s;
+ return this.r.m != null;
+ }
+ ,split: function(s) {
+ var d = "#__delim__#";
+ return s.replace(this.r,d).split(d);
+ }
+};
+var HxOverrides = function() { };
+HxOverrides.__name__ = true;
+HxOverrides.cca = function(s,index) {
+ var x = s.charCodeAt(index);
+ if(x != x) {
+ return undefined;
+ }
+ return x;
+};
+HxOverrides.substr = function(s,pos,len) {
+ if(len == null) {
+ len = s.length;
+ } else if(len < 0) {
+ if(pos == 0) {
+ len = s.length + len;
+ } else {
+ return "";
+ }
+ }
+ return s.substr(pos,len);
+};
+HxOverrides.now = function() {
+ return Date.now();
+};
+Math.__name__ = true;
+var Reflect = function() { };
+Reflect.__name__ = true;
+Reflect.field = function(o,field) {
+ try {
+ return o[field];
+ } catch( _g ) {
+ return null;
+ }
+};
+Reflect.fields = function(o) {
+ var a = [];
+ if(o != null) {
+ var hasOwnProperty = Object.prototype.hasOwnProperty;
+ for( var f in o ) {
+ if(f != "__id__" && f != "hx__closures__" && hasOwnProperty.call(o,f)) {
+ a.push(f);
+ }
+ }
+ }
+ return a;
+};
+Reflect.deleteField = function(o,field) {
+ if(!Object.prototype.hasOwnProperty.call(o,field)) {
+ return false;
+ }
+ delete(o[field]);
+ return true;
+};
+Reflect.copy = function(o) {
+ if(o == null) {
+ return null;
+ }
+ var o2 = { };
+ var _g = 0;
+ var _g1 = Reflect.fields(o);
+ while(_g < _g1.length) {
+ var f = _g1[_g];
+ ++_g;
+ o2[f] = Reflect.field(o,f);
+ }
+ return o2;
+};
+var Std = function() { };
+Std.__name__ = true;
+Std.string = function(s) {
+ return js_Boot.__string_rec(s,"");
+};
+Std.parseInt = function(x) {
+ if(x != null) {
+ var _g = 0;
+ var _g1 = x.length;
+ while(_g < _g1) {
+ var i = _g++;
+ var c = x.charCodeAt(i);
+ if(c <= 8 || c >= 14 && c != 32 && c != 45) {
+ var nc = x.charCodeAt(i + 1);
+ var v = parseInt(x,nc == 120 || nc == 88 ? 16 : 10);
+ if(isNaN(v)) {
+ return null;
+ } else {
+ return v;
+ }
+ }
+ }
+ }
+ return null;
+};
+var StringTools = function() { };
+StringTools.__name__ = true;
+StringTools.isSpace = function(s,pos) {
+ var c = HxOverrides.cca(s,pos);
+ if(!(c > 8 && c < 14)) {
+ return c == 32;
+ } else {
+ return true;
+ }
+};
+StringTools.ltrim = function(s) {
+ var l = s.length;
+ var r = 0;
+ while(r < l && StringTools.isSpace(s,r)) ++r;
+ if(r > 0) {
+ return HxOverrides.substr(s,r,l - r);
+ } else {
+ return s;
+ }
+};
+StringTools.rtrim = function(s) {
+ var l = s.length;
+ var r = 0;
+ while(r < l && StringTools.isSpace(s,l - r - 1)) ++r;
+ if(r > 0) {
+ return HxOverrides.substr(s,0,l - r);
+ } else {
+ return s;
+ }
+};
+StringTools.trim = function(s) {
+ return StringTools.ltrim(StringTools.rtrim(s));
+};
+var haxe_iterators_ArrayIterator = function(array) {
+ this.current = 0;
+ this.array = array;
+};
+haxe_iterators_ArrayIterator.__name__ = true;
+haxe_iterators_ArrayIterator.prototype = {
+ hasNext: function() {
+ return this.current < this.array.length;
+ }
+ ,next: function() {
+ return this.array[this.current++];
+ }
+};
+var js_Boot = function() { };
+js_Boot.__name__ = true;
+js_Boot.__string_rec = function(o,s) {
+ if(o == null) {
+ return "null";
+ }
+ if(s.length >= 5) {
+ return "<...>";
+ }
+ var t = typeof(o);
+ if(t == "function" && (o.__name__ || o.__ename__)) {
+ t = "object";
+ }
+ switch(t) {
+ case "function":
+ return "";
+ case "object":
+ if(((o) instanceof Array)) {
+ var str = "[";
+ s += "\t";
+ var _g = 0;
+ var _g1 = o.length;
+ while(_g < _g1) {
+ var i = _g++;
+ str += (i > 0 ? "," : "") + js_Boot.__string_rec(o[i],s);
+ }
+ str += "]";
+ return str;
+ }
+ var tostr;
+ try {
+ tostr = o.toString;
+ } catch( _g ) {
+ return "???";
+ }
+ if(tostr != null && tostr != Object.toString && typeof(tostr) == "function") {
+ var s2 = o.toString();
+ if(s2 != "[object Object]") {
+ return s2;
+ }
+ }
+ var str = "{\n";
+ s += "\t";
+ var hasp = o.hasOwnProperty != null;
+ var k = null;
+ for( k in o ) {
+ if(hasp && !o.hasOwnProperty(k)) {
+ continue;
+ }
+ if(k == "prototype" || k == "__class__" || k == "__super__" || k == "__interfaces__" || k == "__properties__") {
+ continue;
+ }
+ if(str.length != 2) {
+ str += ", \n";
+ }
+ str += s + k + " : " + js_Boot.__string_rec(o[k],s);
+ }
+ s = s.substring(1);
+ str += "\n" + s + "}";
+ return str;
+ case "string":
+ return o;
+ default:
+ return String(o);
+ }
+};
+var xrfragment_Filter = $hx_exports["xrfragment"]["Filter"] = function(str) {
+ this.q = { };
+ this.str = "";
+ if(str != null) {
+ this.parse(str);
+ }
+};
+xrfragment_Filter.__name__ = true;
+xrfragment_Filter.prototype = {
+ toObject: function() {
+ return Reflect.copy(this.q);
+ }
+ ,get: function() {
+ return Reflect.copy(this.q);
+ }
+ ,parse: function(str) {
+ var token = str.split(" ");
+ var q = { };
+ var process = function(str,prefix) {
+ if(prefix == null) {
+ prefix = "";
+ }
+ str = StringTools.trim(str);
+ var k = str.split("=")[0];
+ var v = str.split("=")[1];
+ var filter = { };
+ if(q[prefix + k]) {
+ filter = q[prefix + k];
+ }
+ if(xrfragment_XRF.isProp.match(str)) {
+ var oper = "";
+ if(str.indexOf(">") != -1) {
+ oper = ">";
+ }
+ if(str.indexOf("<") != -1) {
+ oper = "<";
+ }
+ if(xrfragment_XRF.isExclude.match(k)) {
+ k = HxOverrides.substr(k,1,null);
+ }
+ v = HxOverrides.substr(v,oper.length,null);
+ if(oper.length == 0) {
+ oper = "=";
+ }
+ var rule = { };
+ if(xrfragment_XRF.isNumber.match(v)) {
+ rule[oper] = parseFloat(v);
+ } else {
+ rule[oper] = v;
+ }
+ q["expr"] = rule;
+ }
+ var value = xrfragment_XRF.isDeep.match(str) ? k.split("*").length - 1 : 0;
+ q["deep"] = value;
+ var value = xrfragment_XRF.isExclude.match(str) ? false : true;
+ q["show"] = value;
+ var value = k.replace(xrfragment_XRF.operators.r,"");
+ q["key"] = value;
+ q["value"] = v;
+ };
+ var _g = 0;
+ var _g1 = token.length;
+ while(_g < _g1) {
+ var i = _g++;
+ process(token[i]);
+ }
+ return this.q = q;
+ }
+ ,test: function(obj) {
+ var qualify = false;
+ var _g = 0;
+ var _g1 = Reflect.fields(obj);
+ while(_g < _g1.length) {
+ var k = _g1[_g];
+ ++_g;
+ var v = Std.string(Reflect.field(obj,k));
+ if(this.testProperty(k,v)) {
+ qualify = true;
+ }
+ }
+ var _g = 0;
+ var _g1 = Reflect.fields(obj);
+ while(_g < _g1.length) {
+ var k = _g1[_g];
+ ++_g;
+ var v = Std.string(Reflect.field(obj,k));
+ if(this.testProperty(k,v,true)) {
+ qualify = false;
+ }
+ }
+ return qualify;
+ }
+ ,testProperty: function(property,value,exclude) {
+ var conds = 0;
+ var fails = 0;
+ var qualify = 0;
+ var testprop = function(expr) {
+ conds += 1;
+ fails += expr ? 0 : 1;
+ return expr;
+ };
+ if(this.q[value] != null) {
+ var v = this.q[value];
+ if(v[property] != null) {
+ return v[property];
+ }
+ }
+ if(Reflect.field(this.q,"expr")) {
+ var f = Reflect.field(this.q,"expr");
+ if(!Reflect.field(this.q,"show")) {
+ if(Reflect.field(f,"!=") != null && testprop((value == null ? "null" : "" + value) == Std.string(Reflect.field(f,"!="))) && exclude) {
+ ++qualify;
+ }
+ } else {
+ if(Reflect.field(f,"*") != null && testprop(parseFloat(value) != null)) {
+ ++qualify;
+ }
+ if(Reflect.field(f,">") != null && testprop(parseFloat(value) >= parseFloat(Reflect.field(f,">")))) {
+ ++qualify;
+ }
+ if(Reflect.field(f,"<") != null && testprop(parseFloat(value) <= parseFloat(Reflect.field(f,"<")))) {
+ ++qualify;
+ }
+ if(Reflect.field(f,"=") != null && (testprop(value == Reflect.field(f,"=")) || testprop(parseFloat(value) == parseFloat(Reflect.field(f,"="))))) {
+ ++qualify;
+ }
+ }
+ }
+ return qualify > 0;
+ }
+};
+var xrfragment_Parser = $hx_exports["xrfragment"]["Parser"] = function() { };
+xrfragment_Parser.__name__ = true;
+xrfragment_Parser.parse = function(key,value,store,index) {
+ var Frag_h = Object.create(null);
+ Frag_h["#"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_PREDEFINED_VIEW | xrfragment_XRF.PV_EXECUTE;
+ Frag_h["src"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_URL;
+ Frag_h["href"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_URL | xrfragment_XRF.T_PREDEFINED_VIEW;
+ Frag_h["tag"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["pos"] = xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_VECTOR3 | xrfragment_XRF.T_STRING | xrfragment_XRF.T_STRING_OBJ | xrfragment_XRF.METADATA | xrfragment_XRF.NAVIGATOR;
+ Frag_h["rot"] = xrfragment_XRF.QUERY_OPERATOR | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_VECTOR3 | xrfragment_XRF.METADATA | xrfragment_XRF.NAVIGATOR;
+ Frag_h["t"] = xrfragment_XRF.ASSET | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_FLOAT | xrfragment_XRF.T_VECTOR2 | xrfragment_XRF.T_STRING | xrfragment_XRF.NAVIGATOR | xrfragment_XRF.METADATA;
+ Frag_h["tv"] = xrfragment_XRF.ASSET | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_FLOAT | xrfragment_XRF.T_VECTOR2 | xrfragment_XRF.T_VECTOR3 | xrfragment_XRF.NAVIGATOR | xrfragment_XRF.METADATA;
+ Frag_h["namespace"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["SPDX"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["unit"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["description"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["session"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_URL | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.NAVIGATOR | xrfragment_XRF.METADATA | xrfragment_XRF.PROMPT;
+ var keyStripped = key.replace(xrfragment_XRF.operators.r,"");
+ var isPVDynamic = key.length > 0 && !Object.prototype.hasOwnProperty.call(Frag_h,key);
+ var isPVDefault = value.length == 0 && key.length > 0 && key == "#";
+ if(isPVDynamic) {
+ var v = new xrfragment_XRF(key,xrfragment_XRF.PV_EXECUTE | xrfragment_XRF.NAVIGATOR,index);
+ v.validate(value);
+ store[keyStripped] = v;
+ return true;
+ }
+ var v = new xrfragment_XRF(key,Frag_h[key],index);
+ if(Object.prototype.hasOwnProperty.call(Frag_h,key)) {
+ if(!v.validate(value)) {
+ console.log("src/xrfragment/Parser.hx:66:","⚠ fragment '" + key + "' has incompatible value (" + value + ")");
+ return false;
+ }
+ store[keyStripped] = v;
+ if(xrfragment_Parser.debug) {
+ console.log("src/xrfragment/Parser.hx:70:","✔ " + key + ": " + v.string);
+ }
+ } else {
+ if(typeof(value) == "string") {
+ v.guessType(v,value);
+ }
+ v.noXRF = true;
+ store[keyStripped] = v;
+ }
+ return true;
+};
+var xrfragment_URI = $hx_exports["xrfragment"]["URI"] = function() { };
+xrfragment_URI.__name__ = true;
+xrfragment_URI.parse = function(url,filter) {
+ var store = { };
+ if(url == null || url.indexOf("#") == -1) {
+ return store;
+ }
+ var fragment = url.split("#");
+ var splitArray = fragment[1].split("&");
+ var _g = 0;
+ var _g1 = splitArray.length;
+ while(_g < _g1) {
+ var i = _g++;
+ var splitByEqual = splitArray[i].split("=");
+ var regexPlus = new EReg("\\+","g");
+ var key = splitByEqual[0];
+ var value = "";
+ if(splitByEqual.length > 1) {
+ var s = regexPlus.split(splitByEqual[1]).join(" ");
+ value = decodeURIComponent(s.split("+").join(" "));
+ }
+ var ok = xrfragment_Parser.parse(key,value,store,i);
+ }
+ if(filter != null && filter != 0) {
+ var _g = 0;
+ var _g1 = Reflect.fields(store);
+ while(_g < _g1.length) {
+ var key = _g1[_g];
+ ++_g;
+ var xrf = store[key];
+ if(!xrf.is(filter)) {
+ Reflect.deleteField(store,key);
+ }
+ }
+ }
+ return store;
+};
+var xrfragment_XRF = $hx_exports["xrfragment"]["XRF"] = function(_fragment,_flags,_index) {
+ this.fragment = _fragment;
+ this.flags = _flags;
+ this.index = _index;
+};
+xrfragment_XRF.__name__ = true;
+xrfragment_XRF.set = function(flag,flags) {
+ return flags | flag;
+};
+xrfragment_XRF.unset = function(flag,flags) {
+ return flags & ~flag;
+};
+xrfragment_XRF.prototype = {
+ is: function(flag) {
+ var v = this.flags;
+ if(!(typeof(v) == "number" && ((v | 0) === v))) {
+ this.flags = 0;
+ }
+ return (this.flags & flag) != 0;
+ }
+ ,validate: function(value) {
+ this.guessType(this,value);
+ var ok = true;
+ if(!this.is(xrfragment_XRF.T_FLOAT) && this.is(xrfragment_XRF.T_VECTOR2) && !(typeof(this.x) == "number" && typeof(this.y) == "number")) {
+ ok = false;
+ }
+ if(!(this.is(xrfragment_XRF.T_VECTOR2) || this.is(xrfragment_XRF.T_STRING)) && this.is(xrfragment_XRF.T_VECTOR3) && !(typeof(this.x) == "number" && typeof(this.y) == "number" && typeof(this.z) == "number")) {
+ ok = false;
+ }
+ return ok;
+ }
+ ,guessType: function(v,str) {
+ v.string = str;
+ if(typeof(str) != "string") {
+ return;
+ }
+ if(str.length > 0) {
+ if(str.split(",").length > 1) {
+ var xyzw = str.split(",");
+ if(xyzw.length > 0) {
+ v.x = parseFloat(xyzw[0]);
+ }
+ if(xyzw.length > 1) {
+ v.y = parseFloat(xyzw[1]);
+ }
+ if(xyzw.length > 2) {
+ v.z = parseFloat(xyzw[2]);
+ }
+ if(xyzw.length > 3) {
+ v.w = parseFloat(xyzw[3]);
+ }
+ }
+ if(xrfragment_XRF.isColor.match(str)) {
+ v.color = str;
+ }
+ if(xrfragment_XRF.isFloat.match(str)) {
+ v.x = parseFloat(str);
+ v.float = v.x;
+ }
+ if(xrfragment_XRF.isInt.match(str)) {
+ v.int = Std.parseInt(str);
+ v.x = v.int;
+ }
+ v.filter = new xrfragment_Filter(v.fragment + "=" + v.string);
+ } else {
+ v.filter = new xrfragment_Filter(v.fragment);
+ }
+ }
+};
+if(typeof(performance) != "undefined" ? typeof(performance.now) == "function" : false) {
+ HxOverrides.now = performance.now.bind(performance);
+}
+String.__name__ = true;
+Array.__name__ = true;
+js_Boot.__toStr = ({ }).toString;
+xrfragment_Parser.error = "";
+xrfragment_Parser.debug = false;
+xrfragment_XRF.ASSET = 1;
+xrfragment_XRF.PROP_BIND = 2;
+xrfragment_XRF.QUERY_OPERATOR = 4;
+xrfragment_XRF.PROMPT = 8;
+xrfragment_XRF.ROUNDROBIN = 16;
+xrfragment_XRF.NAVIGATOR = 32;
+xrfragment_XRF.METADATA = 64;
+xrfragment_XRF.PV_OVERRIDE = 128;
+xrfragment_XRF.PV_EXECUTE = 256;
+xrfragment_XRF.T_COLOR = 8192;
+xrfragment_XRF.T_INT = 16384;
+xrfragment_XRF.T_FLOAT = 32768;
+xrfragment_XRF.T_VECTOR2 = 65536;
+xrfragment_XRF.T_VECTOR3 = 131072;
+xrfragment_XRF.T_URL = 262144;
+xrfragment_XRF.T_PREDEFINED_VIEW = 524288;
+xrfragment_XRF.T_STRING = 1048576;
+xrfragment_XRF.T_STRING_OBJ = 2097152;
+xrfragment_XRF.T_STRING_OBJ_PROP = 4194304;
+xrfragment_XRF.isColor = new EReg("^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$","");
+xrfragment_XRF.isInt = new EReg("^[-0-9]+$","");
+xrfragment_XRF.isFloat = new EReg("^[-0-9]+\\.[0-9]+$","");
+xrfragment_XRF.isVector = new EReg("([,]+|\\w)","");
+xrfragment_XRF.isUrl = new EReg("(://)?\\..*","");
+xrfragment_XRF.isUrlOrPretypedView = new EReg("(^#|://)?\\..*","");
+xrfragment_XRF.isString = new EReg(".*","");
+xrfragment_XRF.operators = new EReg("(^-|[\\*]+)","");
+xrfragment_XRF.isProp = new EReg("^.*=[><=]?","");
+xrfragment_XRF.isExclude = new EReg("^-","");
+xrfragment_XRF.isDeep = new EReg("\\*","");
+xrfragment_XRF.isNumber = new EReg("^[0-9\\.]+$","");
+})({});
+var xrfragment = $hx_exports["xrfragment"];
+export default xrfragment;
+var $hx_exports = typeof exports != "undefined" ? exports : typeof window != "undefined" ? window : typeof self != "undefined" ? self : this;
+(function ($global) { "use strict";
+$hx_exports["xrfragment"] = $hx_exports["xrfragment"] || {};
+var EReg = function(r,opt) {
+ this.r = new RegExp(r,opt.split("u").join(""));
+};
+EReg.__name__ = true;
+EReg.prototype = {
+ match: function(s) {
+ if(this.r.global) {
+ this.r.lastIndex = 0;
+ }
+ this.r.m = this.r.exec(s);
+ this.r.s = s;
+ return this.r.m != null;
+ }
+ ,split: function(s) {
+ var d = "#__delim__#";
+ return s.replace(this.r,d).split(d);
+ }
+};
+var HxOverrides = function() { };
+HxOverrides.__name__ = true;
+HxOverrides.cca = function(s,index) {
+ var x = s.charCodeAt(index);
+ if(x != x) {
+ return undefined;
+ }
+ return x;
+};
+HxOverrides.substr = function(s,pos,len) {
+ if(len == null) {
+ len = s.length;
+ } else if(len < 0) {
+ if(pos == 0) {
+ len = s.length + len;
+ } else {
+ return "";
+ }
+ }
+ return s.substr(pos,len);
+};
+HxOverrides.now = function() {
+ return Date.now();
+};
+Math.__name__ = true;
+var Reflect = function() { };
+Reflect.__name__ = true;
+Reflect.field = function(o,field) {
+ try {
+ return o[field];
+ } catch( _g ) {
+ return null;
+ }
+};
+Reflect.fields = function(o) {
+ var a = [];
+ if(o != null) {
+ var hasOwnProperty = Object.prototype.hasOwnProperty;
+ for( var f in o ) {
+ if(f != "__id__" && f != "hx__closures__" && hasOwnProperty.call(o,f)) {
+ a.push(f);
+ }
+ }
+ }
+ return a;
+};
+Reflect.deleteField = function(o,field) {
+ if(!Object.prototype.hasOwnProperty.call(o,field)) {
+ return false;
+ }
+ delete(o[field]);
+ return true;
+};
+Reflect.copy = function(o) {
+ if(o == null) {
+ return null;
+ }
+ var o2 = { };
+ var _g = 0;
+ var _g1 = Reflect.fields(o);
+ while(_g < _g1.length) {
+ var f = _g1[_g];
+ ++_g;
+ o2[f] = Reflect.field(o,f);
+ }
+ return o2;
+};
+var Std = function() { };
+Std.__name__ = true;
+Std.string = function(s) {
+ return js_Boot.__string_rec(s,"");
+};
+Std.parseInt = function(x) {
+ if(x != null) {
+ var _g = 0;
+ var _g1 = x.length;
+ while(_g < _g1) {
+ var i = _g++;
+ var c = x.charCodeAt(i);
+ if(c <= 8 || c >= 14 && c != 32 && c != 45) {
+ var nc = x.charCodeAt(i + 1);
+ var v = parseInt(x,nc == 120 || nc == 88 ? 16 : 10);
+ if(isNaN(v)) {
+ return null;
+ } else {
+ return v;
+ }
+ }
+ }
+ }
+ return null;
+};
+var StringTools = function() { };
+StringTools.__name__ = true;
+StringTools.isSpace = function(s,pos) {
+ var c = HxOverrides.cca(s,pos);
+ if(!(c > 8 && c < 14)) {
+ return c == 32;
+ } else {
+ return true;
+ }
+};
+StringTools.ltrim = function(s) {
+ var l = s.length;
+ var r = 0;
+ while(r < l && StringTools.isSpace(s,r)) ++r;
+ if(r > 0) {
+ return HxOverrides.substr(s,r,l - r);
+ } else {
+ return s;
+ }
+};
+StringTools.rtrim = function(s) {
+ var l = s.length;
+ var r = 0;
+ while(r < l && StringTools.isSpace(s,l - r - 1)) ++r;
+ if(r > 0) {
+ return HxOverrides.substr(s,0,l - r);
+ } else {
+ return s;
+ }
+};
+StringTools.trim = function(s) {
+ return StringTools.ltrim(StringTools.rtrim(s));
+};
+var haxe_iterators_ArrayIterator = function(array) {
+ this.current = 0;
+ this.array = array;
+};
+haxe_iterators_ArrayIterator.__name__ = true;
+haxe_iterators_ArrayIterator.prototype = {
+ hasNext: function() {
+ return this.current < this.array.length;
+ }
+ ,next: function() {
+ return this.array[this.current++];
+ }
+};
+var js_Boot = function() { };
+js_Boot.__name__ = true;
+js_Boot.__string_rec = function(o,s) {
+ if(o == null) {
+ return "null";
+ }
+ if(s.length >= 5) {
+ return "<...>";
+ }
+ var t = typeof(o);
+ if(t == "function" && (o.__name__ || o.__ename__)) {
+ t = "object";
+ }
+ switch(t) {
+ case "function":
+ return "";
+ case "object":
+ if(((o) instanceof Array)) {
+ var str = "[";
+ s += "\t";
+ var _g = 0;
+ var _g1 = o.length;
+ while(_g < _g1) {
+ var i = _g++;
+ str += (i > 0 ? "," : "") + js_Boot.__string_rec(o[i],s);
+ }
+ str += "]";
+ return str;
+ }
+ var tostr;
+ try {
+ tostr = o.toString;
+ } catch( _g ) {
+ return "???";
+ }
+ if(tostr != null && tostr != Object.toString && typeof(tostr) == "function") {
+ var s2 = o.toString();
+ if(s2 != "[object Object]") {
+ return s2;
+ }
+ }
+ var str = "{\n";
+ s += "\t";
+ var hasp = o.hasOwnProperty != null;
+ var k = null;
+ for( k in o ) {
+ if(hasp && !o.hasOwnProperty(k)) {
+ continue;
+ }
+ if(k == "prototype" || k == "__class__" || k == "__super__" || k == "__interfaces__" || k == "__properties__") {
+ continue;
+ }
+ if(str.length != 2) {
+ str += ", \n";
+ }
+ str += s + k + " : " + js_Boot.__string_rec(o[k],s);
+ }
+ s = s.substring(1);
+ str += "\n" + s + "}";
+ return str;
+ case "string":
+ return o;
+ default:
+ return String(o);
+ }
+};
+var xrfragment_Filter = $hx_exports["xrfragment"]["Filter"] = function(str) {
+ this.q = { };
+ this.str = "";
+ if(str != null) {
+ this.parse(str);
+ }
+};
+xrfragment_Filter.__name__ = true;
+xrfragment_Filter.prototype = {
+ toObject: function() {
+ return Reflect.copy(this.q);
+ }
+ ,get: function() {
+ return Reflect.copy(this.q);
+ }
+ ,parse: function(str) {
+ var token = str.split(" ");
+ var q = { };
+ var process = function(str,prefix) {
+ if(prefix == null) {
+ prefix = "";
+ }
+ str = StringTools.trim(str);
+ var k = str.split("=")[0];
+ var v = str.split("=")[1];
+ var filter = { };
+ if(q[prefix + k]) {
+ filter = q[prefix + k];
+ }
+ if(xrfragment_XRF.isProp.match(str)) {
+ var oper = "";
+ if(str.indexOf(">") != -1) {
+ oper = ">";
+ }
+ if(str.indexOf("<") != -1) {
+ oper = "<";
+ }
+ if(xrfragment_XRF.isExclude.match(k)) {
+ k = HxOverrides.substr(k,1,null);
+ }
+ v = HxOverrides.substr(v,oper.length,null);
+ if(oper.length == 0) {
+ oper = "=";
+ }
+ var rule = { };
+ if(xrfragment_XRF.isNumber.match(v)) {
+ rule[oper] = parseFloat(v);
+ } else {
+ rule[oper] = v;
+ }
+ q["expr"] = rule;
+ }
+ var value = xrfragment_XRF.isDeep.match(str) ? k.split("*").length - 1 : 0;
+ q["deep"] = value;
+ var value = xrfragment_XRF.isExclude.match(str) ? false : true;
+ q["show"] = value;
+ var value = k.replace(xrfragment_XRF.operators.r,"");
+ q["key"] = value;
+ q["value"] = v;
+ };
+ var _g = 0;
+ var _g1 = token.length;
+ while(_g < _g1) {
+ var i = _g++;
+ process(token[i]);
+ }
+ return this.q = q;
+ }
+ ,test: function(obj) {
+ var qualify = false;
+ var _g = 0;
+ var _g1 = Reflect.fields(obj);
+ while(_g < _g1.length) {
+ var k = _g1[_g];
+ ++_g;
+ var v = Std.string(Reflect.field(obj,k));
+ if(this.testProperty(k,v)) {
+ qualify = true;
+ }
+ }
+ var _g = 0;
+ var _g1 = Reflect.fields(obj);
+ while(_g < _g1.length) {
+ var k = _g1[_g];
+ ++_g;
+ var v = Std.string(Reflect.field(obj,k));
+ if(this.testProperty(k,v,true)) {
+ qualify = false;
+ }
+ }
+ return qualify;
+ }
+ ,testProperty: function(property,value,exclude) {
+ var conds = 0;
+ var fails = 0;
+ var qualify = 0;
+ var testprop = function(expr) {
+ conds += 1;
+ fails += expr ? 0 : 1;
+ return expr;
+ };
+ if(this.q[value] != null) {
+ var v = this.q[value];
+ if(v[property] != null) {
+ return v[property];
+ }
+ }
+ if(Reflect.field(this.q,"expr")) {
+ var f = Reflect.field(this.q,"expr");
+ if(!Reflect.field(this.q,"show")) {
+ if(Reflect.field(f,"!=") != null && testprop((value == null ? "null" : "" + value) == Std.string(Reflect.field(f,"!="))) && exclude) {
+ ++qualify;
+ }
+ } else {
+ if(Reflect.field(f,"*") != null && testprop(parseFloat(value) != null)) {
+ ++qualify;
+ }
+ if(Reflect.field(f,">") != null && testprop(parseFloat(value) >= parseFloat(Reflect.field(f,">")))) {
+ ++qualify;
+ }
+ if(Reflect.field(f,"<") != null && testprop(parseFloat(value) <= parseFloat(Reflect.field(f,"<")))) {
+ ++qualify;
+ }
+ if(Reflect.field(f,"=") != null && (testprop(value == Reflect.field(f,"=")) || testprop(parseFloat(value) == parseFloat(Reflect.field(f,"="))))) {
+ ++qualify;
+ }
+ }
+ }
+ return qualify > 0;
+ }
+};
+var xrfragment_Parser = $hx_exports["xrfragment"]["Parser"] = function() { };
+xrfragment_Parser.__name__ = true;
+xrfragment_Parser.parse = function(key,value,store,index) {
+ var Frag_h = Object.create(null);
+ Frag_h["#"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_PREDEFINED_VIEW | xrfragment_XRF.PV_EXECUTE;
+ Frag_h["src"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_URL;
+ Frag_h["href"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_URL | xrfragment_XRF.T_PREDEFINED_VIEW;
+ Frag_h["tag"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["pos"] = xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_VECTOR3 | xrfragment_XRF.T_STRING | xrfragment_XRF.T_STRING_OBJ | xrfragment_XRF.METADATA | xrfragment_XRF.NAVIGATOR;
+ Frag_h["rot"] = xrfragment_XRF.QUERY_OPERATOR | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_VECTOR3 | xrfragment_XRF.METADATA | xrfragment_XRF.NAVIGATOR;
+ Frag_h["t"] = xrfragment_XRF.ASSET | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_FLOAT | xrfragment_XRF.T_VECTOR2 | xrfragment_XRF.T_STRING | xrfragment_XRF.NAVIGATOR | xrfragment_XRF.METADATA;
+ Frag_h["tv"] = xrfragment_XRF.ASSET | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_FLOAT | xrfragment_XRF.T_VECTOR2 | xrfragment_XRF.T_VECTOR3 | xrfragment_XRF.NAVIGATOR | xrfragment_XRF.METADATA;
+ Frag_h["namespace"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["SPDX"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["unit"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["description"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["session"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_URL | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.NAVIGATOR | xrfragment_XRF.METADATA | xrfragment_XRF.PROMPT;
+ var keyStripped = key.replace(xrfragment_XRF.operators.r,"");
+ var isPVDynamic = key.length > 0 && !Object.prototype.hasOwnProperty.call(Frag_h,key);
+ var isPVDefault = value.length == 0 && key.length > 0 && key == "#";
+ if(isPVDynamic) {
+ var v = new xrfragment_XRF(key,xrfragment_XRF.PV_EXECUTE | xrfragment_XRF.NAVIGATOR,index);
+ v.validate(value);
+ store[keyStripped] = v;
+ return true;
+ }
+ var v = new xrfragment_XRF(key,Frag_h[key],index);
+ if(Object.prototype.hasOwnProperty.call(Frag_h,key)) {
+ if(!v.validate(value)) {
+ console.log("src/xrfragment/Parser.hx:66:","⚠ fragment '" + key + "' has incompatible value (" + value + ")");
+ return false;
+ }
+ store[keyStripped] = v;
+ if(xrfragment_Parser.debug) {
+ console.log("src/xrfragment/Parser.hx:70:","✔ " + key + ": " + v.string);
+ }
+ } else {
+ if(typeof(value) == "string") {
+ v.guessType(v,value);
+ }
+ v.noXRF = true;
+ store[keyStripped] = v;
+ }
+ return true;
+};
+var xrfragment_URI = $hx_exports["xrfragment"]["URI"] = function() { };
+xrfragment_URI.__name__ = true;
+xrfragment_URI.parse = function(url,filter) {
+ var store = { };
+ if(url == null || url.indexOf("#") == -1) {
+ return store;
+ }
+ var fragment = url.split("#");
+ var splitArray = fragment[1].split("&");
+ var _g = 0;
+ var _g1 = splitArray.length;
+ while(_g < _g1) {
+ var i = _g++;
+ var splitByEqual = splitArray[i].split("=");
+ var regexPlus = new EReg("\\+","g");
+ var key = splitByEqual[0];
+ var value = "";
+ if(splitByEqual.length > 1) {
+ var s = regexPlus.split(splitByEqual[1]).join(" ");
+ value = decodeURIComponent(s.split("+").join(" "));
+ }
+ var ok = xrfragment_Parser.parse(key,value,store,i);
+ }
+ if(filter != null && filter != 0) {
+ var _g = 0;
+ var _g1 = Reflect.fields(store);
+ while(_g < _g1.length) {
+ var key = _g1[_g];
+ ++_g;
+ var xrf = store[key];
+ if(!xrf.is(filter)) {
+ Reflect.deleteField(store,key);
+ }
+ }
+ }
+ return store;
+};
+var xrfragment_XRF = $hx_exports["xrfragment"]["XRF"] = function(_fragment,_flags,_index) {
+ this.fragment = _fragment;
+ this.flags = _flags;
+ this.index = _index;
+};
+xrfragment_XRF.__name__ = true;
+xrfragment_XRF.set = function(flag,flags) {
+ return flags | flag;
+};
+xrfragment_XRF.unset = function(flag,flags) {
+ return flags & ~flag;
+};
+xrfragment_XRF.prototype = {
+ is: function(flag) {
+ var v = this.flags;
+ if(!(typeof(v) == "number" && ((v | 0) === v))) {
+ this.flags = 0;
+ }
+ return (this.flags & flag) != 0;
+ }
+ ,validate: function(value) {
+ this.guessType(this,value);
+ var ok = true;
+ if(!this.is(xrfragment_XRF.T_FLOAT) && this.is(xrfragment_XRF.T_VECTOR2) && !(typeof(this.x) == "number" && typeof(this.y) == "number")) {
+ ok = false;
+ }
+ if(!(this.is(xrfragment_XRF.T_VECTOR2) || this.is(xrfragment_XRF.T_STRING)) && this.is(xrfragment_XRF.T_VECTOR3) && !(typeof(this.x) == "number" && typeof(this.y) == "number" && typeof(this.z) == "number")) {
+ ok = false;
+ }
+ return ok;
+ }
+ ,guessType: function(v,str) {
+ v.string = str;
+ if(typeof(str) != "string") {
+ return;
+ }
+ if(str.length > 0) {
+ if(str.split(",").length > 1) {
+ var xyzw = str.split(",");
+ if(xyzw.length > 0) {
+ v.x = parseFloat(xyzw[0]);
+ }
+ if(xyzw.length > 1) {
+ v.y = parseFloat(xyzw[1]);
+ }
+ if(xyzw.length > 2) {
+ v.z = parseFloat(xyzw[2]);
+ }
+ if(xyzw.length > 3) {
+ v.w = parseFloat(xyzw[3]);
+ }
+ }
+ if(xrfragment_XRF.isColor.match(str)) {
+ v.color = str;
+ }
+ if(xrfragment_XRF.isFloat.match(str)) {
+ v.x = parseFloat(str);
+ v.float = v.x;
+ }
+ if(xrfragment_XRF.isInt.match(str)) {
+ v.int = Std.parseInt(str);
+ v.x = v.int;
+ }
+ v.filter = new xrfragment_Filter(v.fragment + "=" + v.string);
+ } else {
+ v.filter = new xrfragment_Filter(v.fragment);
+ }
+ }
+};
+if(typeof(performance) != "undefined" ? typeof(performance.now) == "function" : false) {
+ HxOverrides.now = performance.now.bind(performance);
+}
+String.__name__ = true;
+Array.__name__ = true;
+js_Boot.__toStr = ({ }).toString;
+xrfragment_Parser.error = "";
+xrfragment_Parser.debug = false;
+xrfragment_XRF.ASSET = 1;
+xrfragment_XRF.PROP_BIND = 2;
+xrfragment_XRF.QUERY_OPERATOR = 4;
+xrfragment_XRF.PROMPT = 8;
+xrfragment_XRF.ROUNDROBIN = 16;
+xrfragment_XRF.NAVIGATOR = 32;
+xrfragment_XRF.METADATA = 64;
+xrfragment_XRF.PV_OVERRIDE = 128;
+xrfragment_XRF.PV_EXECUTE = 256;
+xrfragment_XRF.T_COLOR = 8192;
+xrfragment_XRF.T_INT = 16384;
+xrfragment_XRF.T_FLOAT = 32768;
+xrfragment_XRF.T_VECTOR2 = 65536;
+xrfragment_XRF.T_VECTOR3 = 131072;
+xrfragment_XRF.T_URL = 262144;
+xrfragment_XRF.T_PREDEFINED_VIEW = 524288;
+xrfragment_XRF.T_STRING = 1048576;
+xrfragment_XRF.T_STRING_OBJ = 2097152;
+xrfragment_XRF.T_STRING_OBJ_PROP = 4194304;
+xrfragment_XRF.isColor = new EReg("^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$","");
+xrfragment_XRF.isInt = new EReg("^[-0-9]+$","");
+xrfragment_XRF.isFloat = new EReg("^[-0-9]+\\.[0-9]+$","");
+xrfragment_XRF.isVector = new EReg("([,]+|\\w)","");
+xrfragment_XRF.isUrl = new EReg("(://)?\\..*","");
+xrfragment_XRF.isUrlOrPretypedView = new EReg("(^#|://)?\\..*","");
+xrfragment_XRF.isString = new EReg(".*","");
+xrfragment_XRF.operators = new EReg("(^-|[\\*]+)","");
+xrfragment_XRF.isProp = new EReg("^.*=[><=]?","");
+xrfragment_XRF.isExclude = new EReg("^-","");
+xrfragment_XRF.isDeep = new EReg("\\*","");
+xrfragment_XRF.isNumber = new EReg("^[0-9\\.]+$","");
+})({});
+var xrfragment = $hx_exports["xrfragment"];
+export default xrfragment;
+var $hx_exports = typeof exports != "undefined" ? exports : typeof window != "undefined" ? window : typeof self != "undefined" ? self : this;
+(function ($global) { "use strict";
+$hx_exports["xrfragment"] = $hx_exports["xrfragment"] || {};
+var EReg = function(r,opt) {
+ this.r = new RegExp(r,opt.split("u").join(""));
+};
+EReg.__name__ = true;
+EReg.prototype = {
+ match: function(s) {
+ if(this.r.global) {
+ this.r.lastIndex = 0;
+ }
+ this.r.m = this.r.exec(s);
+ this.r.s = s;
+ return this.r.m != null;
+ }
+ ,split: function(s) {
+ var d = "#__delim__#";
+ return s.replace(this.r,d).split(d);
+ }
+};
+var HxOverrides = function() { };
+HxOverrides.__name__ = true;
+HxOverrides.cca = function(s,index) {
+ var x = s.charCodeAt(index);
+ if(x != x) {
+ return undefined;
+ }
+ return x;
+};
+HxOverrides.substr = function(s,pos,len) {
+ if(len == null) {
+ len = s.length;
+ } else if(len < 0) {
+ if(pos == 0) {
+ len = s.length + len;
+ } else {
+ return "";
+ }
+ }
+ return s.substr(pos,len);
+};
+HxOverrides.now = function() {
+ return Date.now();
+};
+Math.__name__ = true;
+var Reflect = function() { };
+Reflect.__name__ = true;
+Reflect.field = function(o,field) {
+ try {
+ return o[field];
+ } catch( _g ) {
+ return null;
+ }
+};
+Reflect.fields = function(o) {
+ var a = [];
+ if(o != null) {
+ var hasOwnProperty = Object.prototype.hasOwnProperty;
+ for( var f in o ) {
+ if(f != "__id__" && f != "hx__closures__" && hasOwnProperty.call(o,f)) {
+ a.push(f);
+ }
+ }
+ }
+ return a;
+};
+Reflect.deleteField = function(o,field) {
+ if(!Object.prototype.hasOwnProperty.call(o,field)) {
+ return false;
+ }
+ delete(o[field]);
+ return true;
+};
+Reflect.copy = function(o) {
+ if(o == null) {
+ return null;
+ }
+ var o2 = { };
+ var _g = 0;
+ var _g1 = Reflect.fields(o);
+ while(_g < _g1.length) {
+ var f = _g1[_g];
+ ++_g;
+ o2[f] = Reflect.field(o,f);
+ }
+ return o2;
+};
+var Std = function() { };
+Std.__name__ = true;
+Std.string = function(s) {
+ return js_Boot.__string_rec(s,"");
+};
+Std.parseInt = function(x) {
+ if(x != null) {
+ var _g = 0;
+ var _g1 = x.length;
+ while(_g < _g1) {
+ var i = _g++;
+ var c = x.charCodeAt(i);
+ if(c <= 8 || c >= 14 && c != 32 && c != 45) {
+ var nc = x.charCodeAt(i + 1);
+ var v = parseInt(x,nc == 120 || nc == 88 ? 16 : 10);
+ if(isNaN(v)) {
+ return null;
+ } else {
+ return v;
+ }
+ }
+ }
+ }
+ return null;
+};
+var StringTools = function() { };
+StringTools.__name__ = true;
+StringTools.isSpace = function(s,pos) {
+ var c = HxOverrides.cca(s,pos);
+ if(!(c > 8 && c < 14)) {
+ return c == 32;
+ } else {
+ return true;
+ }
+};
+StringTools.ltrim = function(s) {
+ var l = s.length;
+ var r = 0;
+ while(r < l && StringTools.isSpace(s,r)) ++r;
+ if(r > 0) {
+ return HxOverrides.substr(s,r,l - r);
+ } else {
+ return s;
+ }
+};
+StringTools.rtrim = function(s) {
+ var l = s.length;
+ var r = 0;
+ while(r < l && StringTools.isSpace(s,l - r - 1)) ++r;
+ if(r > 0) {
+ return HxOverrides.substr(s,0,l - r);
+ } else {
+ return s;
+ }
+};
+StringTools.trim = function(s) {
+ return StringTools.ltrim(StringTools.rtrim(s));
+};
+var haxe_iterators_ArrayIterator = function(array) {
+ this.current = 0;
+ this.array = array;
+};
+haxe_iterators_ArrayIterator.__name__ = true;
+haxe_iterators_ArrayIterator.prototype = {
+ hasNext: function() {
+ return this.current < this.array.length;
+ }
+ ,next: function() {
+ return this.array[this.current++];
+ }
+};
+var js_Boot = function() { };
+js_Boot.__name__ = true;
+js_Boot.__string_rec = function(o,s) {
+ if(o == null) {
+ return "null";
+ }
+ if(s.length >= 5) {
+ return "<...>";
+ }
+ var t = typeof(o);
+ if(t == "function" && (o.__name__ || o.__ename__)) {
+ t = "object";
+ }
+ switch(t) {
+ case "function":
+ return "";
+ case "object":
+ if(((o) instanceof Array)) {
+ var str = "[";
+ s += "\t";
+ var _g = 0;
+ var _g1 = o.length;
+ while(_g < _g1) {
+ var i = _g++;
+ str += (i > 0 ? "," : "") + js_Boot.__string_rec(o[i],s);
+ }
+ str += "]";
+ return str;
+ }
+ var tostr;
+ try {
+ tostr = o.toString;
+ } catch( _g ) {
+ return "???";
+ }
+ if(tostr != null && tostr != Object.toString && typeof(tostr) == "function") {
+ var s2 = o.toString();
+ if(s2 != "[object Object]") {
+ return s2;
+ }
+ }
+ var str = "{\n";
+ s += "\t";
+ var hasp = o.hasOwnProperty != null;
+ var k = null;
+ for( k in o ) {
+ if(hasp && !o.hasOwnProperty(k)) {
+ continue;
+ }
+ if(k == "prototype" || k == "__class__" || k == "__super__" || k == "__interfaces__" || k == "__properties__") {
+ continue;
+ }
+ if(str.length != 2) {
+ str += ", \n";
+ }
+ str += s + k + " : " + js_Boot.__string_rec(o[k],s);
+ }
+ s = s.substring(1);
+ str += "\n" + s + "}";
+ return str;
+ case "string":
+ return o;
+ default:
+ return String(o);
+ }
+};
+var xrfragment_Filter = $hx_exports["xrfragment"]["Filter"] = function(str) {
+ this.q = { };
+ this.str = "";
+ if(str != null) {
+ this.parse(str);
+ }
+};
+xrfragment_Filter.__name__ = true;
+xrfragment_Filter.prototype = {
+ toObject: function() {
+ return Reflect.copy(this.q);
+ }
+ ,get: function() {
+ return Reflect.copy(this.q);
+ }
+ ,parse: function(str) {
+ var token = str.split(" ");
+ var q = { };
+ var process = function(str,prefix) {
+ if(prefix == null) {
+ prefix = "";
+ }
+ str = StringTools.trim(str);
+ var k = str.split("=")[0];
+ var v = str.split("=")[1];
+ var filter = { };
+ if(q[prefix + k]) {
+ filter = q[prefix + k];
+ }
+ if(xrfragment_XRF.isProp.match(str)) {
+ var oper = "";
+ if(str.indexOf(">") != -1) {
+ oper = ">";
+ }
+ if(str.indexOf("<") != -1) {
+ oper = "<";
+ }
+ if(xrfragment_XRF.isExclude.match(k)) {
+ k = HxOverrides.substr(k,1,null);
+ }
+ v = HxOverrides.substr(v,oper.length,null);
+ if(oper.length == 0) {
+ oper = "=";
+ }
+ var rule = { };
+ if(xrfragment_XRF.isNumber.match(v)) {
+ rule[oper] = parseFloat(v);
+ } else {
+ rule[oper] = v;
+ }
+ q["expr"] = rule;
+ }
+ var value = xrfragment_XRF.isDeep.match(str) ? k.split("*").length - 1 : 0;
+ q["deep"] = value;
+ var value = xrfragment_XRF.isExclude.match(str) ? false : true;
+ q["show"] = value;
+ var value = k.replace(xrfragment_XRF.operators.r,"");
+ q["key"] = value;
+ q["value"] = v;
+ };
+ var _g = 0;
+ var _g1 = token.length;
+ while(_g < _g1) {
+ var i = _g++;
+ process(token[i]);
+ }
+ return this.q = q;
+ }
+ ,test: function(obj) {
+ var qualify = false;
+ var _g = 0;
+ var _g1 = Reflect.fields(obj);
+ while(_g < _g1.length) {
+ var k = _g1[_g];
+ ++_g;
+ var v = Std.string(Reflect.field(obj,k));
+ if(this.testProperty(k,v)) {
+ qualify = true;
+ }
+ }
+ var _g = 0;
+ var _g1 = Reflect.fields(obj);
+ while(_g < _g1.length) {
+ var k = _g1[_g];
+ ++_g;
+ var v = Std.string(Reflect.field(obj,k));
+ if(this.testProperty(k,v,true)) {
+ qualify = false;
+ }
+ }
+ return qualify;
+ }
+ ,testProperty: function(property,value,exclude) {
+ var conds = 0;
+ var fails = 0;
+ var qualify = 0;
+ var testprop = function(expr) {
+ conds += 1;
+ fails += expr ? 0 : 1;
+ return expr;
+ };
+ if(this.q[value] != null) {
+ var v = this.q[value];
+ if(v[property] != null) {
+ return v[property];
+ }
+ }
+ if(Reflect.field(this.q,"expr")) {
+ var f = Reflect.field(this.q,"expr");
+ if(!Reflect.field(this.q,"show")) {
+ if(Reflect.field(f,"!=") != null && testprop((value == null ? "null" : "" + value) == Std.string(Reflect.field(f,"!="))) && exclude) {
+ ++qualify;
+ }
+ } else {
+ if(Reflect.field(f,"*") != null && testprop(parseFloat(value) != null)) {
+ ++qualify;
+ }
+ if(Reflect.field(f,">") != null && testprop(parseFloat(value) >= parseFloat(Reflect.field(f,">")))) {
+ ++qualify;
+ }
+ if(Reflect.field(f,"<") != null && testprop(parseFloat(value) <= parseFloat(Reflect.field(f,"<")))) {
+ ++qualify;
+ }
+ if(Reflect.field(f,"=") != null && (testprop(value == Reflect.field(f,"=")) || testprop(parseFloat(value) == parseFloat(Reflect.field(f,"="))))) {
+ ++qualify;
+ }
+ }
+ }
+ return qualify > 0;
+ }
+};
+var xrfragment_Parser = $hx_exports["xrfragment"]["Parser"] = function() { };
+xrfragment_Parser.__name__ = true;
+xrfragment_Parser.parse = function(key,value,store,index) {
+ var Frag_h = Object.create(null);
+ Frag_h["#"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_PREDEFINED_VIEW | xrfragment_XRF.PV_EXECUTE;
+ Frag_h["src"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_URL;
+ Frag_h["href"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_URL | xrfragment_XRF.T_PREDEFINED_VIEW;
+ Frag_h["tag"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["pos"] = xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_VECTOR3 | xrfragment_XRF.T_STRING | xrfragment_XRF.T_STRING_OBJ | xrfragment_XRF.METADATA | xrfragment_XRF.NAVIGATOR;
+ Frag_h["rot"] = xrfragment_XRF.QUERY_OPERATOR | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_VECTOR3 | xrfragment_XRF.METADATA | xrfragment_XRF.NAVIGATOR;
+ Frag_h["t"] = xrfragment_XRF.ASSET | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_FLOAT | xrfragment_XRF.T_VECTOR2 | xrfragment_XRF.T_STRING | xrfragment_XRF.NAVIGATOR | xrfragment_XRF.METADATA;
+ Frag_h["tv"] = xrfragment_XRF.ASSET | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_FLOAT | xrfragment_XRF.T_VECTOR2 | xrfragment_XRF.T_VECTOR3 | xrfragment_XRF.NAVIGATOR | xrfragment_XRF.METADATA;
+ Frag_h["namespace"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["SPDX"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["unit"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["description"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["session"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_URL | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.NAVIGATOR | xrfragment_XRF.METADATA | xrfragment_XRF.PROMPT;
+ var keyStripped = key.replace(xrfragment_XRF.operators.r,"");
+ var isPVDynamic = key.length > 0 && !Object.prototype.hasOwnProperty.call(Frag_h,key);
+ var isPVDefault = value.length == 0 && key.length > 0 && key == "#";
+ if(isPVDynamic) {
+ var v = new xrfragment_XRF(key,xrfragment_XRF.PV_EXECUTE | xrfragment_XRF.NAVIGATOR,index);
+ v.validate(value);
+ store[keyStripped] = v;
+ return true;
+ }
+ var v = new xrfragment_XRF(key,Frag_h[key],index);
+ if(Object.prototype.hasOwnProperty.call(Frag_h,key)) {
+ if(!v.validate(value)) {
+ console.log("src/xrfragment/Parser.hx:66:","⚠ fragment '" + key + "' has incompatible value (" + value + ")");
+ return false;
+ }
+ store[keyStripped] = v;
+ if(xrfragment_Parser.debug) {
+ console.log("src/xrfragment/Parser.hx:70:","✔ " + key + ": " + v.string);
+ }
+ } else {
+ if(typeof(value) == "string") {
+ v.guessType(v,value);
+ }
+ v.noXRF = true;
+ store[keyStripped] = v;
+ }
+ return true;
+};
+var xrfragment_URI = $hx_exports["xrfragment"]["URI"] = function() { };
+xrfragment_URI.__name__ = true;
+xrfragment_URI.parse = function(url,filter) {
+ var store = { };
+ if(url == null || url.indexOf("#") == -1) {
+ return store;
+ }
+ var fragment = url.split("#");
+ var splitArray = fragment[1].split("&");
+ var _g = 0;
+ var _g1 = splitArray.length;
+ while(_g < _g1) {
+ var i = _g++;
+ var splitByEqual = splitArray[i].split("=");
+ var regexPlus = new EReg("\\+","g");
+ var key = splitByEqual[0];
+ var value = "";
+ if(splitByEqual.length > 1) {
+ var s = regexPlus.split(splitByEqual[1]).join(" ");
+ value = decodeURIComponent(s.split("+").join(" "));
+ }
+ var ok = xrfragment_Parser.parse(key,value,store,i);
+ }
+ if(filter != null && filter != 0) {
+ var _g = 0;
+ var _g1 = Reflect.fields(store);
+ while(_g < _g1.length) {
+ var key = _g1[_g];
+ ++_g;
+ var xrf = store[key];
+ if(!xrf.is(filter)) {
+ Reflect.deleteField(store,key);
+ }
+ }
+ }
+ return store;
+};
+var xrfragment_XRF = $hx_exports["xrfragment"]["XRF"] = function(_fragment,_flags,_index) {
+ this.fragment = _fragment;
+ this.flags = _flags;
+ this.index = _index;
+};
+xrfragment_XRF.__name__ = true;
+xrfragment_XRF.set = function(flag,flags) {
+ return flags | flag;
+};
+xrfragment_XRF.unset = function(flag,flags) {
+ return flags & ~flag;
+};
+xrfragment_XRF.prototype = {
+ is: function(flag) {
+ var v = this.flags;
+ if(!(typeof(v) == "number" && ((v | 0) === v))) {
+ this.flags = 0;
+ }
+ return (this.flags & flag) != 0;
+ }
+ ,validate: function(value) {
+ this.guessType(this,value);
+ var ok = true;
+ if(!this.is(xrfragment_XRF.T_FLOAT) && this.is(xrfragment_XRF.T_VECTOR2) && !(typeof(this.x) == "number" && typeof(this.y) == "number")) {
+ ok = false;
+ }
+ if(!(this.is(xrfragment_XRF.T_VECTOR2) || this.is(xrfragment_XRF.T_STRING)) && this.is(xrfragment_XRF.T_VECTOR3) && !(typeof(this.x) == "number" && typeof(this.y) == "number" && typeof(this.z) == "number")) {
+ ok = false;
+ }
+ return ok;
+ }
+ ,guessType: function(v,str) {
+ v.string = str;
+ if(typeof(str) != "string") {
+ return;
+ }
+ if(str.length > 0) {
+ if(str.split(",").length > 1) {
+ var xyzw = str.split(",");
+ if(xyzw.length > 0) {
+ v.x = parseFloat(xyzw[0]);
+ }
+ if(xyzw.length > 1) {
+ v.y = parseFloat(xyzw[1]);
+ }
+ if(xyzw.length > 2) {
+ v.z = parseFloat(xyzw[2]);
+ }
+ if(xyzw.length > 3) {
+ v.w = parseFloat(xyzw[3]);
+ }
+ }
+ if(xrfragment_XRF.isColor.match(str)) {
+ v.color = str;
+ }
+ if(xrfragment_XRF.isFloat.match(str)) {
+ v.x = parseFloat(str);
+ v.float = v.x;
+ }
+ if(xrfragment_XRF.isInt.match(str)) {
+ v.int = Std.parseInt(str);
+ v.x = v.int;
+ }
+ v.filter = new xrfragment_Filter(v.fragment + "=" + v.string);
+ } else {
+ v.filter = new xrfragment_Filter(v.fragment);
+ }
+ }
+};
+if(typeof(performance) != "undefined" ? typeof(performance.now) == "function" : false) {
+ HxOverrides.now = performance.now.bind(performance);
+}
+String.__name__ = true;
+Array.__name__ = true;
+js_Boot.__toStr = ({ }).toString;
+xrfragment_Parser.error = "";
+xrfragment_Parser.debug = false;
+xrfragment_XRF.ASSET = 1;
+xrfragment_XRF.PROP_BIND = 2;
+xrfragment_XRF.QUERY_OPERATOR = 4;
+xrfragment_XRF.PROMPT = 8;
+xrfragment_XRF.ROUNDROBIN = 16;
+xrfragment_XRF.NAVIGATOR = 32;
+xrfragment_XRF.METADATA = 64;
+xrfragment_XRF.PV_OVERRIDE = 128;
+xrfragment_XRF.PV_EXECUTE = 256;
+xrfragment_XRF.T_COLOR = 8192;
+xrfragment_XRF.T_INT = 16384;
+xrfragment_XRF.T_FLOAT = 32768;
+xrfragment_XRF.T_VECTOR2 = 65536;
+xrfragment_XRF.T_VECTOR3 = 131072;
+xrfragment_XRF.T_URL = 262144;
+xrfragment_XRF.T_PREDEFINED_VIEW = 524288;
+xrfragment_XRF.T_STRING = 1048576;
+xrfragment_XRF.T_STRING_OBJ = 2097152;
+xrfragment_XRF.T_STRING_OBJ_PROP = 4194304;
+xrfragment_XRF.isColor = new EReg("^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$","");
+xrfragment_XRF.isInt = new EReg("^[-0-9]+$","");
+xrfragment_XRF.isFloat = new EReg("^[-0-9]+\\.[0-9]+$","");
+xrfragment_XRF.isVector = new EReg("([,]+|\\w)","");
+xrfragment_XRF.isUrl = new EReg("(://)?\\..*","");
+xrfragment_XRF.isUrlOrPretypedView = new EReg("(^#|://)?\\..*","");
+xrfragment_XRF.isString = new EReg(".*","");
+xrfragment_XRF.operators = new EReg("(^-|[\\*]+)","");
+xrfragment_XRF.isProp = new EReg("^.*=[><=]?","");
+xrfragment_XRF.isExclude = new EReg("^-","");
+xrfragment_XRF.isDeep = new EReg("\\*","");
+xrfragment_XRF.isNumber = new EReg("^[0-9\\.]+$","");
+})({});
+var xrfragment = $hx_exports["xrfragment"];
+export default xrfragment;
+var $hx_exports = typeof exports != "undefined" ? exports : typeof window != "undefined" ? window : typeof self != "undefined" ? self : this;
+(function ($global) { "use strict";
+$hx_exports["xrfragment"] = $hx_exports["xrfragment"] || {};
+var EReg = function(r,opt) {
+ this.r = new RegExp(r,opt.split("u").join(""));
+};
+EReg.__name__ = true;
+EReg.prototype = {
+ match: function(s) {
+ if(this.r.global) {
+ this.r.lastIndex = 0;
+ }
+ this.r.m = this.r.exec(s);
+ this.r.s = s;
+ return this.r.m != null;
+ }
+ ,split: function(s) {
+ var d = "#__delim__#";
+ return s.replace(this.r,d).split(d);
+ }
+};
+var HxOverrides = function() { };
+HxOverrides.__name__ = true;
+HxOverrides.cca = function(s,index) {
+ var x = s.charCodeAt(index);
+ if(x != x) {
+ return undefined;
+ }
+ return x;
+};
+HxOverrides.substr = function(s,pos,len) {
+ if(len == null) {
+ len = s.length;
+ } else if(len < 0) {
+ if(pos == 0) {
+ len = s.length + len;
+ } else {
+ return "";
+ }
+ }
+ return s.substr(pos,len);
+};
+HxOverrides.now = function() {
+ return Date.now();
+};
+Math.__name__ = true;
+var Reflect = function() { };
+Reflect.__name__ = true;
+Reflect.field = function(o,field) {
+ try {
+ return o[field];
+ } catch( _g ) {
+ return null;
+ }
+};
+Reflect.fields = function(o) {
+ var a = [];
+ if(o != null) {
+ var hasOwnProperty = Object.prototype.hasOwnProperty;
+ for( var f in o ) {
+ if(f != "__id__" && f != "hx__closures__" && hasOwnProperty.call(o,f)) {
+ a.push(f);
+ }
+ }
+ }
+ return a;
+};
+Reflect.deleteField = function(o,field) {
+ if(!Object.prototype.hasOwnProperty.call(o,field)) {
+ return false;
+ }
+ delete(o[field]);
+ return true;
+};
+Reflect.copy = function(o) {
+ if(o == null) {
+ return null;
+ }
+ var o2 = { };
+ var _g = 0;
+ var _g1 = Reflect.fields(o);
+ while(_g < _g1.length) {
+ var f = _g1[_g];
+ ++_g;
+ o2[f] = Reflect.field(o,f);
+ }
+ return o2;
+};
+var Std = function() { };
+Std.__name__ = true;
+Std.string = function(s) {
+ return js_Boot.__string_rec(s,"");
+};
+Std.parseInt = function(x) {
+ if(x != null) {
+ var _g = 0;
+ var _g1 = x.length;
+ while(_g < _g1) {
+ var i = _g++;
+ var c = x.charCodeAt(i);
+ if(c <= 8 || c >= 14 && c != 32 && c != 45) {
+ var nc = x.charCodeAt(i + 1);
+ var v = parseInt(x,nc == 120 || nc == 88 ? 16 : 10);
+ if(isNaN(v)) {
+ return null;
+ } else {
+ return v;
+ }
+ }
+ }
+ }
+ return null;
+};
+var StringTools = function() { };
+StringTools.__name__ = true;
+StringTools.isSpace = function(s,pos) {
+ var c = HxOverrides.cca(s,pos);
+ if(!(c > 8 && c < 14)) {
+ return c == 32;
+ } else {
+ return true;
+ }
+};
+StringTools.ltrim = function(s) {
+ var l = s.length;
+ var r = 0;
+ while(r < l && StringTools.isSpace(s,r)) ++r;
+ if(r > 0) {
+ return HxOverrides.substr(s,r,l - r);
+ } else {
+ return s;
+ }
+};
+StringTools.rtrim = function(s) {
+ var l = s.length;
+ var r = 0;
+ while(r < l && StringTools.isSpace(s,l - r - 1)) ++r;
+ if(r > 0) {
+ return HxOverrides.substr(s,0,l - r);
+ } else {
+ return s;
+ }
+};
+StringTools.trim = function(s) {
+ return StringTools.ltrim(StringTools.rtrim(s));
+};
+var haxe_iterators_ArrayIterator = function(array) {
+ this.current = 0;
+ this.array = array;
+};
+haxe_iterators_ArrayIterator.__name__ = true;
+haxe_iterators_ArrayIterator.prototype = {
+ hasNext: function() {
+ return this.current < this.array.length;
+ }
+ ,next: function() {
+ return this.array[this.current++];
+ }
+};
+var js_Boot = function() { };
+js_Boot.__name__ = true;
+js_Boot.__string_rec = function(o,s) {
+ if(o == null) {
+ return "null";
+ }
+ if(s.length >= 5) {
+ return "<...>";
+ }
+ var t = typeof(o);
+ if(t == "function" && (o.__name__ || o.__ename__)) {
+ t = "object";
+ }
+ switch(t) {
+ case "function":
+ return "";
+ case "object":
+ if(((o) instanceof Array)) {
+ var str = "[";
+ s += "\t";
+ var _g = 0;
+ var _g1 = o.length;
+ while(_g < _g1) {
+ var i = _g++;
+ str += (i > 0 ? "," : "") + js_Boot.__string_rec(o[i],s);
+ }
+ str += "]";
+ return str;
+ }
+ var tostr;
+ try {
+ tostr = o.toString;
+ } catch( _g ) {
+ return "???";
+ }
+ if(tostr != null && tostr != Object.toString && typeof(tostr) == "function") {
+ var s2 = o.toString();
+ if(s2 != "[object Object]") {
+ return s2;
+ }
+ }
+ var str = "{\n";
+ s += "\t";
+ var hasp = o.hasOwnProperty != null;
+ var k = null;
+ for( k in o ) {
+ if(hasp && !o.hasOwnProperty(k)) {
+ continue;
+ }
+ if(k == "prototype" || k == "__class__" || k == "__super__" || k == "__interfaces__" || k == "__properties__") {
+ continue;
+ }
+ if(str.length != 2) {
+ str += ", \n";
+ }
+ str += s + k + " : " + js_Boot.__string_rec(o[k],s);
+ }
+ s = s.substring(1);
+ str += "\n" + s + "}";
+ return str;
+ case "string":
+ return o;
+ default:
+ return String(o);
+ }
+};
+var xrfragment_Filter = $hx_exports["xrfragment"]["Filter"] = function(str) {
+ this.q = { };
+ this.str = "";
+ if(str != null) {
+ this.parse(str);
+ }
+};
+xrfragment_Filter.__name__ = true;
+xrfragment_Filter.prototype = {
+ toObject: function() {
+ return Reflect.copy(this.q);
+ }
+ ,get: function() {
+ return Reflect.copy(this.q);
+ }
+ ,parse: function(str) {
+ var token = str.split(" ");
+ var q = { };
+ var process = function(str,prefix) {
+ if(prefix == null) {
+ prefix = "";
+ }
+ str = StringTools.trim(str);
+ var k = str.split("=")[0];
+ var v = str.split("=")[1];
+ var filter = { };
+ if(q[prefix + k]) {
+ filter = q[prefix + k];
+ }
+ if(xrfragment_XRF.isProp.match(str)) {
+ var oper = "";
+ if(str.indexOf(">") != -1) {
+ oper = ">";
+ }
+ if(str.indexOf("<") != -1) {
+ oper = "<";
+ }
+ if(xrfragment_XRF.isExclude.match(k)) {
+ k = HxOverrides.substr(k,1,null);
+ }
+ v = HxOverrides.substr(v,oper.length,null);
+ if(oper.length == 0) {
+ oper = "=";
+ }
+ var rule = { };
+ if(xrfragment_XRF.isNumber.match(v)) {
+ rule[oper] = parseFloat(v);
+ } else {
+ rule[oper] = v;
+ }
+ q["expr"] = rule;
+ }
+ var value = xrfragment_XRF.isDeep.match(str) ? k.split("*").length - 1 : 0;
+ q["deep"] = value;
+ var value = xrfragment_XRF.isExclude.match(str) ? false : true;
+ q["show"] = value;
+ var value = k.replace(xrfragment_XRF.operators.r,"");
+ q["key"] = value;
+ q["value"] = v;
+ };
+ var _g = 0;
+ var _g1 = token.length;
+ while(_g < _g1) {
+ var i = _g++;
+ process(token[i]);
+ }
+ return this.q = q;
+ }
+ ,test: function(obj) {
+ var qualify = false;
+ var _g = 0;
+ var _g1 = Reflect.fields(obj);
+ while(_g < _g1.length) {
+ var k = _g1[_g];
+ ++_g;
+ var v = Std.string(Reflect.field(obj,k));
+ if(this.testProperty(k,v)) {
+ qualify = true;
+ }
+ }
+ var _g = 0;
+ var _g1 = Reflect.fields(obj);
+ while(_g < _g1.length) {
+ var k = _g1[_g];
+ ++_g;
+ var v = Std.string(Reflect.field(obj,k));
+ if(this.testProperty(k,v,true)) {
+ qualify = false;
+ }
+ }
+ return qualify;
+ }
+ ,testProperty: function(property,value,exclude) {
+ var conds = 0;
+ var fails = 0;
+ var qualify = 0;
+ var testprop = function(expr) {
+ conds += 1;
+ fails += expr ? 0 : 1;
+ return expr;
+ };
+ if(this.q[value] != null) {
+ var v = this.q[value];
+ if(v[property] != null) {
+ return v[property];
+ }
+ }
+ if(Reflect.field(this.q,"expr")) {
+ var f = Reflect.field(this.q,"expr");
+ if(!Reflect.field(this.q,"show")) {
+ if(Reflect.field(f,"!=") != null && testprop((value == null ? "null" : "" + value) == Std.string(Reflect.field(f,"!="))) && exclude) {
+ ++qualify;
+ }
+ } else {
+ if(Reflect.field(f,"*") != null && testprop(parseFloat(value) != null)) {
+ ++qualify;
+ }
+ if(Reflect.field(f,">") != null && testprop(parseFloat(value) >= parseFloat(Reflect.field(f,">")))) {
+ ++qualify;
+ }
+ if(Reflect.field(f,"<") != null && testprop(parseFloat(value) <= parseFloat(Reflect.field(f,"<")))) {
+ ++qualify;
+ }
+ if(Reflect.field(f,"=") != null && (testprop(value == Reflect.field(f,"=")) || testprop(parseFloat(value) == parseFloat(Reflect.field(f,"="))))) {
+ ++qualify;
+ }
+ }
+ }
+ return qualify > 0;
+ }
+};
+var xrfragment_Parser = $hx_exports["xrfragment"]["Parser"] = function() { };
+xrfragment_Parser.__name__ = true;
+xrfragment_Parser.parse = function(key,value,store,index) {
+ var Frag_h = Object.create(null);
+ Frag_h["#"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_PREDEFINED_VIEW | xrfragment_XRF.PV_EXECUTE;
+ Frag_h["src"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_URL;
+ Frag_h["href"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_URL | xrfragment_XRF.T_PREDEFINED_VIEW;
+ Frag_h["tag"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["pos"] = xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_VECTOR3 | xrfragment_XRF.T_STRING | xrfragment_XRF.T_STRING_OBJ | xrfragment_XRF.METADATA | xrfragment_XRF.NAVIGATOR;
+ Frag_h["rot"] = xrfragment_XRF.QUERY_OPERATOR | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_VECTOR3 | xrfragment_XRF.METADATA | xrfragment_XRF.NAVIGATOR;
+ Frag_h["t"] = xrfragment_XRF.ASSET | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_FLOAT | xrfragment_XRF.T_VECTOR2 | xrfragment_XRF.T_STRING | xrfragment_XRF.NAVIGATOR | xrfragment_XRF.METADATA;
+ Frag_h["tv"] = xrfragment_XRF.ASSET | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_FLOAT | xrfragment_XRF.T_VECTOR2 | xrfragment_XRF.T_VECTOR3 | xrfragment_XRF.NAVIGATOR | xrfragment_XRF.METADATA;
+ Frag_h["namespace"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["SPDX"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["unit"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["description"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["session"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_URL | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.NAVIGATOR | xrfragment_XRF.METADATA | xrfragment_XRF.PROMPT;
+ var keyStripped = key.replace(xrfragment_XRF.operators.r,"");
+ var isPVDynamic = key.length > 0 && !Object.prototype.hasOwnProperty.call(Frag_h,key);
+ var isPVDefault = value.length == 0 && key.length > 0 && key == "#";
+ if(isPVDynamic) {
+ var v = new xrfragment_XRF(key,xrfragment_XRF.PV_EXECUTE | xrfragment_XRF.NAVIGATOR,index);
+ v.validate(value);
+ store[keyStripped] = v;
+ return true;
+ }
+ var v = new xrfragment_XRF(key,Frag_h[key],index);
+ if(Object.prototype.hasOwnProperty.call(Frag_h,key)) {
+ if(!v.validate(value)) {
+ console.log("src/xrfragment/Parser.hx:66:","⚠ fragment '" + key + "' has incompatible value (" + value + ")");
+ return false;
+ }
+ store[keyStripped] = v;
+ if(xrfragment_Parser.debug) {
+ console.log("src/xrfragment/Parser.hx:70:","✔ " + key + ": " + v.string);
+ }
+ } else {
+ if(typeof(value) == "string") {
+ v.guessType(v,value);
+ }
+ v.noXRF = true;
+ store[keyStripped] = v;
+ }
+ return true;
+};
+var xrfragment_URI = $hx_exports["xrfragment"]["URI"] = function() { };
+xrfragment_URI.__name__ = true;
+xrfragment_URI.parse = function(url,filter) {
+ var store = { };
+ if(url == null || url.indexOf("#") == -1) {
+ return store;
+ }
+ var fragment = url.split("#");
+ var splitArray = fragment[1].split("&");
+ var _g = 0;
+ var _g1 = splitArray.length;
+ while(_g < _g1) {
+ var i = _g++;
+ var splitByEqual = splitArray[i].split("=");
+ var regexPlus = new EReg("\\+","g");
+ var key = splitByEqual[0];
+ var value = "";
+ if(splitByEqual.length > 1) {
+ var s = regexPlus.split(splitByEqual[1]).join(" ");
+ value = decodeURIComponent(s.split("+").join(" "));
+ }
+ var ok = xrfragment_Parser.parse(key,value,store,i);
+ }
+ if(filter != null && filter != 0) {
+ var _g = 0;
+ var _g1 = Reflect.fields(store);
+ while(_g < _g1.length) {
+ var key = _g1[_g];
+ ++_g;
+ var xrf = store[key];
+ if(!xrf.is(filter)) {
+ Reflect.deleteField(store,key);
+ }
+ }
+ }
+ return store;
+};
+var xrfragment_XRF = $hx_exports["xrfragment"]["XRF"] = function(_fragment,_flags,_index) {
+ this.fragment = _fragment;
+ this.flags = _flags;
+ this.index = _index;
+};
+xrfragment_XRF.__name__ = true;
+xrfragment_XRF.set = function(flag,flags) {
+ return flags | flag;
+};
+xrfragment_XRF.unset = function(flag,flags) {
+ return flags & ~flag;
+};
+xrfragment_XRF.prototype = {
+ is: function(flag) {
+ var v = this.flags;
+ if(!(typeof(v) == "number" && ((v | 0) === v))) {
+ this.flags = 0;
+ }
+ return (this.flags & flag) != 0;
+ }
+ ,validate: function(value) {
+ this.guessType(this,value);
+ var ok = true;
+ if(!this.is(xrfragment_XRF.T_FLOAT) && this.is(xrfragment_XRF.T_VECTOR2) && !(typeof(this.x) == "number" && typeof(this.y) == "number")) {
+ ok = false;
+ }
+ if(!(this.is(xrfragment_XRF.T_VECTOR2) || this.is(xrfragment_XRF.T_STRING)) && this.is(xrfragment_XRF.T_VECTOR3) && !(typeof(this.x) == "number" && typeof(this.y) == "number" && typeof(this.z) == "number")) {
+ ok = false;
+ }
+ return ok;
+ }
+ ,guessType: function(v,str) {
+ v.string = str;
+ if(typeof(str) != "string") {
+ return;
+ }
+ if(str.length > 0) {
+ if(str.split(",").length > 1) {
+ var xyzw = str.split(",");
+ if(xyzw.length > 0) {
+ v.x = parseFloat(xyzw[0]);
+ }
+ if(xyzw.length > 1) {
+ v.y = parseFloat(xyzw[1]);
+ }
+ if(xyzw.length > 2) {
+ v.z = parseFloat(xyzw[2]);
+ }
+ if(xyzw.length > 3) {
+ v.w = parseFloat(xyzw[3]);
+ }
+ }
+ if(xrfragment_XRF.isColor.match(str)) {
+ v.color = str;
+ }
+ if(xrfragment_XRF.isFloat.match(str)) {
+ v.x = parseFloat(str);
+ v.float = v.x;
+ }
+ if(xrfragment_XRF.isInt.match(str)) {
+ v.int = Std.parseInt(str);
+ v.x = v.int;
+ }
+ v.filter = new xrfragment_Filter(v.fragment + "=" + v.string);
+ } else {
+ v.filter = new xrfragment_Filter(v.fragment);
+ }
+ }
+};
+if(typeof(performance) != "undefined" ? typeof(performance.now) == "function" : false) {
+ HxOverrides.now = performance.now.bind(performance);
+}
+String.__name__ = true;
+Array.__name__ = true;
+js_Boot.__toStr = ({ }).toString;
+xrfragment_Parser.error = "";
+xrfragment_Parser.debug = false;
+xrfragment_XRF.ASSET = 1;
+xrfragment_XRF.PROP_BIND = 2;
+xrfragment_XRF.QUERY_OPERATOR = 4;
+xrfragment_XRF.PROMPT = 8;
+xrfragment_XRF.ROUNDROBIN = 16;
+xrfragment_XRF.NAVIGATOR = 32;
+xrfragment_XRF.METADATA = 64;
+xrfragment_XRF.PV_OVERRIDE = 128;
+xrfragment_XRF.PV_EXECUTE = 256;
+xrfragment_XRF.T_COLOR = 8192;
+xrfragment_XRF.T_INT = 16384;
+xrfragment_XRF.T_FLOAT = 32768;
+xrfragment_XRF.T_VECTOR2 = 65536;
+xrfragment_XRF.T_VECTOR3 = 131072;
+xrfragment_XRF.T_URL = 262144;
+xrfragment_XRF.T_PREDEFINED_VIEW = 524288;
+xrfragment_XRF.T_STRING = 1048576;
+xrfragment_XRF.T_STRING_OBJ = 2097152;
+xrfragment_XRF.T_STRING_OBJ_PROP = 4194304;
+xrfragment_XRF.isColor = new EReg("^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$","");
+xrfragment_XRF.isInt = new EReg("^[-0-9]+$","");
+xrfragment_XRF.isFloat = new EReg("^[-0-9]+\\.[0-9]+$","");
+xrfragment_XRF.isVector = new EReg("([,]+|\\w)","");
+xrfragment_XRF.isUrl = new EReg("(://)?\\..*","");
+xrfragment_XRF.isUrlOrPretypedView = new EReg("(^#|://)?\\..*","");
+xrfragment_XRF.isString = new EReg(".*","");
+xrfragment_XRF.operators = new EReg("(^-|[\\*]+)","");
+xrfragment_XRF.isProp = new EReg("^.*=[><=]?","");
+xrfragment_XRF.isExclude = new EReg("^-","");
+xrfragment_XRF.isDeep = new EReg("\\*","");
+xrfragment_XRF.isNumber = new EReg("^[0-9\\.]+$","");
+})({});
+var xrfragment = $hx_exports["xrfragment"];
+export default xrfragment;
+var $hx_exports = typeof exports != "undefined" ? exports : typeof window != "undefined" ? window : typeof self != "undefined" ? self : this;
+(function ($global) { "use strict";
+$hx_exports["xrfragment"] = $hx_exports["xrfragment"] || {};
+var EReg = function(r,opt) {
+ this.r = new RegExp(r,opt.split("u").join(""));
+};
+EReg.__name__ = true;
+EReg.prototype = {
+ match: function(s) {
+ if(this.r.global) {
+ this.r.lastIndex = 0;
+ }
+ this.r.m = this.r.exec(s);
+ this.r.s = s;
+ return this.r.m != null;
+ }
+ ,split: function(s) {
+ var d = "#__delim__#";
+ return s.replace(this.r,d).split(d);
+ }
+};
+var HxOverrides = function() { };
+HxOverrides.__name__ = true;
+HxOverrides.cca = function(s,index) {
+ var x = s.charCodeAt(index);
+ if(x != x) {
+ return undefined;
+ }
+ return x;
+};
+HxOverrides.substr = function(s,pos,len) {
+ if(len == null) {
+ len = s.length;
+ } else if(len < 0) {
+ if(pos == 0) {
+ len = s.length + len;
+ } else {
+ return "";
+ }
+ }
+ return s.substr(pos,len);
+};
+HxOverrides.now = function() {
+ return Date.now();
+};
+Math.__name__ = true;
+var Reflect = function() { };
+Reflect.__name__ = true;
+Reflect.field = function(o,field) {
+ try {
+ return o[field];
+ } catch( _g ) {
+ return null;
+ }
+};
+Reflect.fields = function(o) {
+ var a = [];
+ if(o != null) {
+ var hasOwnProperty = Object.prototype.hasOwnProperty;
+ for( var f in o ) {
+ if(f != "__id__" && f != "hx__closures__" && hasOwnProperty.call(o,f)) {
+ a.push(f);
+ }
+ }
+ }
+ return a;
+};
+Reflect.deleteField = function(o,field) {
+ if(!Object.prototype.hasOwnProperty.call(o,field)) {
+ return false;
+ }
+ delete(o[field]);
+ return true;
+};
+Reflect.copy = function(o) {
+ if(o == null) {
+ return null;
+ }
+ var o2 = { };
+ var _g = 0;
+ var _g1 = Reflect.fields(o);
+ while(_g < _g1.length) {
+ var f = _g1[_g];
+ ++_g;
+ o2[f] = Reflect.field(o,f);
+ }
+ return o2;
+};
+var Std = function() { };
+Std.__name__ = true;
+Std.string = function(s) {
+ return js_Boot.__string_rec(s,"");
+};
+Std.parseInt = function(x) {
+ if(x != null) {
+ var _g = 0;
+ var _g1 = x.length;
+ while(_g < _g1) {
+ var i = _g++;
+ var c = x.charCodeAt(i);
+ if(c <= 8 || c >= 14 && c != 32 && c != 45) {
+ var nc = x.charCodeAt(i + 1);
+ var v = parseInt(x,nc == 120 || nc == 88 ? 16 : 10);
+ if(isNaN(v)) {
+ return null;
+ } else {
+ return v;
+ }
+ }
+ }
+ }
+ return null;
+};
+var StringTools = function() { };
+StringTools.__name__ = true;
+StringTools.isSpace = function(s,pos) {
+ var c = HxOverrides.cca(s,pos);
+ if(!(c > 8 && c < 14)) {
+ return c == 32;
+ } else {
+ return true;
+ }
+};
+StringTools.ltrim = function(s) {
+ var l = s.length;
+ var r = 0;
+ while(r < l && StringTools.isSpace(s,r)) ++r;
+ if(r > 0) {
+ return HxOverrides.substr(s,r,l - r);
+ } else {
+ return s;
+ }
+};
+StringTools.rtrim = function(s) {
+ var l = s.length;
+ var r = 0;
+ while(r < l && StringTools.isSpace(s,l - r - 1)) ++r;
+ if(r > 0) {
+ return HxOverrides.substr(s,0,l - r);
+ } else {
+ return s;
+ }
+};
+StringTools.trim = function(s) {
+ return StringTools.ltrim(StringTools.rtrim(s));
+};
+var haxe_iterators_ArrayIterator = function(array) {
+ this.current = 0;
+ this.array = array;
+};
+haxe_iterators_ArrayIterator.__name__ = true;
+haxe_iterators_ArrayIterator.prototype = {
+ hasNext: function() {
+ return this.current < this.array.length;
+ }
+ ,next: function() {
+ return this.array[this.current++];
+ }
+};
+var js_Boot = function() { };
+js_Boot.__name__ = true;
+js_Boot.__string_rec = function(o,s) {
+ if(o == null) {
+ return "null";
+ }
+ if(s.length >= 5) {
+ return "<...>";
+ }
+ var t = typeof(o);
+ if(t == "function" && (o.__name__ || o.__ename__)) {
+ t = "object";
+ }
+ switch(t) {
+ case "function":
+ return "";
+ case "object":
+ if(((o) instanceof Array)) {
+ var str = "[";
+ s += "\t";
+ var _g = 0;
+ var _g1 = o.length;
+ while(_g < _g1) {
+ var i = _g++;
+ str += (i > 0 ? "," : "") + js_Boot.__string_rec(o[i],s);
+ }
+ str += "]";
+ return str;
+ }
+ var tostr;
+ try {
+ tostr = o.toString;
+ } catch( _g ) {
+ return "???";
+ }
+ if(tostr != null && tostr != Object.toString && typeof(tostr) == "function") {
+ var s2 = o.toString();
+ if(s2 != "[object Object]") {
+ return s2;
+ }
+ }
+ var str = "{\n";
+ s += "\t";
+ var hasp = o.hasOwnProperty != null;
+ var k = null;
+ for( k in o ) {
+ if(hasp && !o.hasOwnProperty(k)) {
+ continue;
+ }
+ if(k == "prototype" || k == "__class__" || k == "__super__" || k == "__interfaces__" || k == "__properties__") {
+ continue;
+ }
+ if(str.length != 2) {
+ str += ", \n";
+ }
+ str += s + k + " : " + js_Boot.__string_rec(o[k],s);
+ }
+ s = s.substring(1);
+ str += "\n" + s + "}";
+ return str;
+ case "string":
+ return o;
+ default:
+ return String(o);
+ }
+};
+var xrfragment_Filter = $hx_exports["xrfragment"]["Filter"] = function(str) {
+ this.q = { };
+ this.str = "";
+ if(str != null) {
+ this.parse(str);
+ }
+};
+xrfragment_Filter.__name__ = true;
+xrfragment_Filter.prototype = {
+ toObject: function() {
+ return Reflect.copy(this.q);
+ }
+ ,get: function() {
+ return Reflect.copy(this.q);
+ }
+ ,parse: function(str) {
+ var token = str.split(" ");
+ var q = { };
+ var process = function(str,prefix) {
+ if(prefix == null) {
+ prefix = "";
+ }
+ str = StringTools.trim(str);
+ var k = str.split("=")[0];
+ var v = str.split("=")[1];
+ var filter = { };
+ if(q[prefix + k]) {
+ filter = q[prefix + k];
+ }
+ if(xrfragment_XRF.isProp.match(str)) {
+ var oper = "";
+ if(str.indexOf(">") != -1) {
+ oper = ">";
+ }
+ if(str.indexOf("<") != -1) {
+ oper = "<";
+ }
+ if(xrfragment_XRF.isExclude.match(k)) {
+ k = HxOverrides.substr(k,1,null);
+ }
+ v = HxOverrides.substr(v,oper.length,null);
+ if(oper.length == 0) {
+ oper = "=";
+ }
+ var rule = { };
+ if(xrfragment_XRF.isNumber.match(v)) {
+ rule[oper] = parseFloat(v);
+ } else {
+ rule[oper] = v;
+ }
+ q["expr"] = rule;
+ }
+ var value = xrfragment_XRF.isDeep.match(str) ? k.split("*").length - 1 : 0;
+ q["deep"] = value;
+ var value = xrfragment_XRF.isExclude.match(str) ? false : true;
+ q["show"] = value;
+ var value = k.replace(xrfragment_XRF.operators.r,"");
+ q["key"] = value;
+ q["value"] = v;
+ };
+ var _g = 0;
+ var _g1 = token.length;
+ while(_g < _g1) {
+ var i = _g++;
+ process(token[i]);
+ }
+ return this.q = q;
+ }
+ ,test: function(obj) {
+ var qualify = false;
+ var _g = 0;
+ var _g1 = Reflect.fields(obj);
+ while(_g < _g1.length) {
+ var k = _g1[_g];
+ ++_g;
+ var v = Std.string(Reflect.field(obj,k));
+ if(this.testProperty(k,v)) {
+ qualify = true;
+ }
+ }
+ var _g = 0;
+ var _g1 = Reflect.fields(obj);
+ while(_g < _g1.length) {
+ var k = _g1[_g];
+ ++_g;
+ var v = Std.string(Reflect.field(obj,k));
+ if(this.testProperty(k,v,true)) {
+ qualify = false;
+ }
+ }
+ return qualify;
+ }
+ ,testProperty: function(property,value,exclude) {
+ var conds = 0;
+ var fails = 0;
+ var qualify = 0;
+ var testprop = function(expr) {
+ conds += 1;
+ fails += expr ? 0 : 1;
+ return expr;
+ };
+ if(this.q[value] != null) {
+ var v = this.q[value];
+ if(v[property] != null) {
+ return v[property];
+ }
+ }
+ if(Reflect.field(this.q,"expr")) {
+ var f = Reflect.field(this.q,"expr");
+ if(!Reflect.field(this.q,"show")) {
+ if(Reflect.field(f,"!=") != null && testprop((value == null ? "null" : "" + value) == Std.string(Reflect.field(f,"!="))) && exclude) {
+ ++qualify;
+ }
+ } else {
+ if(Reflect.field(f,"*") != null && testprop(parseFloat(value) != null)) {
+ ++qualify;
+ }
+ if(Reflect.field(f,">") != null && testprop(parseFloat(value) >= parseFloat(Reflect.field(f,">")))) {
+ ++qualify;
+ }
+ if(Reflect.field(f,"<") != null && testprop(parseFloat(value) <= parseFloat(Reflect.field(f,"<")))) {
+ ++qualify;
+ }
+ if(Reflect.field(f,"=") != null && (testprop(value == Reflect.field(f,"=")) || testprop(parseFloat(value) == parseFloat(Reflect.field(f,"="))))) {
+ ++qualify;
+ }
+ }
+ }
+ return qualify > 0;
+ }
+};
+var xrfragment_Parser = $hx_exports["xrfragment"]["Parser"] = function() { };
+xrfragment_Parser.__name__ = true;
+xrfragment_Parser.parse = function(key,value,store,index) {
+ var Frag_h = Object.create(null);
+ Frag_h["#"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_PREDEFINED_VIEW | xrfragment_XRF.PV_EXECUTE;
+ Frag_h["src"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_URL;
+ Frag_h["href"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_URL | xrfragment_XRF.T_PREDEFINED_VIEW;
+ Frag_h["tag"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["pos"] = xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_VECTOR3 | xrfragment_XRF.T_STRING | xrfragment_XRF.T_STRING_OBJ | xrfragment_XRF.METADATA | xrfragment_XRF.NAVIGATOR;
+ Frag_h["rot"] = xrfragment_XRF.QUERY_OPERATOR | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_VECTOR3 | xrfragment_XRF.METADATA | xrfragment_XRF.NAVIGATOR;
+ Frag_h["t"] = xrfragment_XRF.ASSET | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_FLOAT | xrfragment_XRF.T_VECTOR2 | xrfragment_XRF.T_STRING | xrfragment_XRF.NAVIGATOR | xrfragment_XRF.METADATA;
+ Frag_h["tv"] = xrfragment_XRF.ASSET | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_FLOAT | xrfragment_XRF.T_VECTOR2 | xrfragment_XRF.T_VECTOR3 | xrfragment_XRF.NAVIGATOR | xrfragment_XRF.METADATA;
+ Frag_h["namespace"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["SPDX"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["unit"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["description"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["session"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_URL | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.NAVIGATOR | xrfragment_XRF.METADATA | xrfragment_XRF.PROMPT;
+ var keyStripped = key.replace(xrfragment_XRF.operators.r,"");
+ var isPVDynamic = key.length > 0 && !Object.prototype.hasOwnProperty.call(Frag_h,key);
+ var isPVDefault = value.length == 0 && key.length > 0 && key == "#";
+ if(isPVDynamic) {
+ var v = new xrfragment_XRF(key,xrfragment_XRF.PV_EXECUTE | xrfragment_XRF.NAVIGATOR,index);
+ v.validate(value);
+ store[keyStripped] = v;
+ return true;
+ }
+ var v = new xrfragment_XRF(key,Frag_h[key],index);
+ if(Object.prototype.hasOwnProperty.call(Frag_h,key)) {
+ if(!v.validate(value)) {
+ console.log("src/xrfragment/Parser.hx:66:","⚠ fragment '" + key + "' has incompatible value (" + value + ")");
+ return false;
+ }
+ store[keyStripped] = v;
+ if(xrfragment_Parser.debug) {
+ console.log("src/xrfragment/Parser.hx:70:","✔ " + key + ": " + v.string);
+ }
+ } else {
+ if(typeof(value) == "string") {
+ v.guessType(v,value);
+ }
+ v.noXRF = true;
+ store[keyStripped] = v;
+ }
+ return true;
+};
+var xrfragment_URI = $hx_exports["xrfragment"]["URI"] = function() { };
+xrfragment_URI.__name__ = true;
+xrfragment_URI.parse = function(url,filter) {
+ var store = { };
+ if(url == null || url.indexOf("#") == -1) {
+ return store;
+ }
+ var fragment = url.split("#");
+ var splitArray = fragment[1].split("&");
+ var _g = 0;
+ var _g1 = splitArray.length;
+ while(_g < _g1) {
+ var i = _g++;
+ var splitByEqual = splitArray[i].split("=");
+ var regexPlus = new EReg("\\+","g");
+ var key = splitByEqual[0];
+ var value = "";
+ if(splitByEqual.length > 1) {
+ var s = regexPlus.split(splitByEqual[1]).join(" ");
+ value = decodeURIComponent(s.split("+").join(" "));
+ }
+ var ok = xrfragment_Parser.parse(key,value,store,i);
+ }
+ if(filter != null && filter != 0) {
+ var _g = 0;
+ var _g1 = Reflect.fields(store);
+ while(_g < _g1.length) {
+ var key = _g1[_g];
+ ++_g;
+ var xrf = store[key];
+ if(!xrf.is(filter)) {
+ Reflect.deleteField(store,key);
+ }
+ }
+ }
+ return store;
+};
+var xrfragment_XRF = $hx_exports["xrfragment"]["XRF"] = function(_fragment,_flags,_index) {
+ this.fragment = _fragment;
+ this.flags = _flags;
+ this.index = _index;
+};
+xrfragment_XRF.__name__ = true;
+xrfragment_XRF.set = function(flag,flags) {
+ return flags | flag;
+};
+xrfragment_XRF.unset = function(flag,flags) {
+ return flags & ~flag;
+};
+xrfragment_XRF.prototype = {
+ is: function(flag) {
+ var v = this.flags;
+ if(!(typeof(v) == "number" && ((v | 0) === v))) {
+ this.flags = 0;
+ }
+ return (this.flags & flag) != 0;
+ }
+ ,validate: function(value) {
+ this.guessType(this,value);
+ var ok = true;
+ if(!this.is(xrfragment_XRF.T_FLOAT) && this.is(xrfragment_XRF.T_VECTOR2) && !(typeof(this.x) == "number" && typeof(this.y) == "number")) {
+ ok = false;
+ }
+ if(!(this.is(xrfragment_XRF.T_VECTOR2) || this.is(xrfragment_XRF.T_STRING)) && this.is(xrfragment_XRF.T_VECTOR3) && !(typeof(this.x) == "number" && typeof(this.y) == "number" && typeof(this.z) == "number")) {
+ ok = false;
+ }
+ return ok;
+ }
+ ,guessType: function(v,str) {
+ v.string = str;
+ if(typeof(str) != "string") {
+ return;
+ }
+ if(str.length > 0) {
+ if(str.split(",").length > 1) {
+ var xyzw = str.split(",");
+ if(xyzw.length > 0) {
+ v.x = parseFloat(xyzw[0]);
+ }
+ if(xyzw.length > 1) {
+ v.y = parseFloat(xyzw[1]);
+ }
+ if(xyzw.length > 2) {
+ v.z = parseFloat(xyzw[2]);
+ }
+ if(xyzw.length > 3) {
+ v.w = parseFloat(xyzw[3]);
+ }
+ }
+ if(xrfragment_XRF.isColor.match(str)) {
+ v.color = str;
+ }
+ if(xrfragment_XRF.isFloat.match(str)) {
+ v.x = parseFloat(str);
+ v.float = v.x;
+ }
+ if(xrfragment_XRF.isInt.match(str)) {
+ v.int = Std.parseInt(str);
+ v.x = v.int;
+ }
+ v.filter = new xrfragment_Filter(v.fragment + "=" + v.string);
+ } else {
+ v.filter = new xrfragment_Filter(v.fragment);
+ }
+ }
+};
+if(typeof(performance) != "undefined" ? typeof(performance.now) == "function" : false) {
+ HxOverrides.now = performance.now.bind(performance);
+}
+String.__name__ = true;
+Array.__name__ = true;
+js_Boot.__toStr = ({ }).toString;
+xrfragment_Parser.error = "";
+xrfragment_Parser.debug = false;
+xrfragment_XRF.ASSET = 1;
+xrfragment_XRF.PROP_BIND = 2;
+xrfragment_XRF.QUERY_OPERATOR = 4;
+xrfragment_XRF.PROMPT = 8;
+xrfragment_XRF.ROUNDROBIN = 16;
+xrfragment_XRF.NAVIGATOR = 32;
+xrfragment_XRF.METADATA = 64;
+xrfragment_XRF.PV_OVERRIDE = 128;
+xrfragment_XRF.PV_EXECUTE = 256;
+xrfragment_XRF.T_COLOR = 8192;
+xrfragment_XRF.T_INT = 16384;
+xrfragment_XRF.T_FLOAT = 32768;
+xrfragment_XRF.T_VECTOR2 = 65536;
+xrfragment_XRF.T_VECTOR3 = 131072;
+xrfragment_XRF.T_URL = 262144;
+xrfragment_XRF.T_PREDEFINED_VIEW = 524288;
+xrfragment_XRF.T_STRING = 1048576;
+xrfragment_XRF.T_STRING_OBJ = 2097152;
+xrfragment_XRF.T_STRING_OBJ_PROP = 4194304;
+xrfragment_XRF.isColor = new EReg("^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$","");
+xrfragment_XRF.isInt = new EReg("^[-0-9]+$","");
+xrfragment_XRF.isFloat = new EReg("^[-0-9]+\\.[0-9]+$","");
+xrfragment_XRF.isVector = new EReg("([,]+|\\w)","");
+xrfragment_XRF.isUrl = new EReg("(://)?\\..*","");
+xrfragment_XRF.isUrlOrPretypedView = new EReg("(^#|://)?\\..*","");
+xrfragment_XRF.isString = new EReg(".*","");
+xrfragment_XRF.operators = new EReg("(^-|[\\*]+)","");
+xrfragment_XRF.isProp = new EReg("^.*=[><=]?","");
+xrfragment_XRF.isExclude = new EReg("^-","");
+xrfragment_XRF.isDeep = new EReg("\\*","");
+xrfragment_XRF.isNumber = new EReg("^[0-9\\.]+$","");
+})({});
+var xrfragment = $hx_exports["xrfragment"];
+export default xrfragment;
+var $hx_exports = typeof exports != "undefined" ? exports : typeof window != "undefined" ? window : typeof self != "undefined" ? self : this;
+(function ($global) { "use strict";
+$hx_exports["xrfragment"] = $hx_exports["xrfragment"] || {};
+var EReg = function(r,opt) {
+ this.r = new RegExp(r,opt.split("u").join(""));
+};
+EReg.__name__ = true;
+EReg.prototype = {
+ match: function(s) {
+ if(this.r.global) {
+ this.r.lastIndex = 0;
+ }
+ this.r.m = this.r.exec(s);
+ this.r.s = s;
+ return this.r.m != null;
+ }
+ ,split: function(s) {
+ var d = "#__delim__#";
+ return s.replace(this.r,d).split(d);
+ }
+};
+var HxOverrides = function() { };
+HxOverrides.__name__ = true;
+HxOverrides.cca = function(s,index) {
+ var x = s.charCodeAt(index);
+ if(x != x) {
+ return undefined;
+ }
+ return x;
+};
+HxOverrides.substr = function(s,pos,len) {
+ if(len == null) {
+ len = s.length;
+ } else if(len < 0) {
+ if(pos == 0) {
+ len = s.length + len;
+ } else {
+ return "";
+ }
+ }
+ return s.substr(pos,len);
+};
+HxOverrides.now = function() {
+ return Date.now();
+};
+Math.__name__ = true;
+var Reflect = function() { };
+Reflect.__name__ = true;
+Reflect.field = function(o,field) {
+ try {
+ return o[field];
+ } catch( _g ) {
+ return null;
+ }
+};
+Reflect.fields = function(o) {
+ var a = [];
+ if(o != null) {
+ var hasOwnProperty = Object.prototype.hasOwnProperty;
+ for( var f in o ) {
+ if(f != "__id__" && f != "hx__closures__" && hasOwnProperty.call(o,f)) {
+ a.push(f);
+ }
+ }
+ }
+ return a;
+};
+Reflect.deleteField = function(o,field) {
+ if(!Object.prototype.hasOwnProperty.call(o,field)) {
+ return false;
+ }
+ delete(o[field]);
+ return true;
+};
+Reflect.copy = function(o) {
+ if(o == null) {
+ return null;
+ }
+ var o2 = { };
+ var _g = 0;
+ var _g1 = Reflect.fields(o);
+ while(_g < _g1.length) {
+ var f = _g1[_g];
+ ++_g;
+ o2[f] = Reflect.field(o,f);
+ }
+ return o2;
+};
+var Std = function() { };
+Std.__name__ = true;
+Std.string = function(s) {
+ return js_Boot.__string_rec(s,"");
+};
+Std.parseInt = function(x) {
+ if(x != null) {
+ var _g = 0;
+ var _g1 = x.length;
+ while(_g < _g1) {
+ var i = _g++;
+ var c = x.charCodeAt(i);
+ if(c <= 8 || c >= 14 && c != 32 && c != 45) {
+ var nc = x.charCodeAt(i + 1);
+ var v = parseInt(x,nc == 120 || nc == 88 ? 16 : 10);
+ if(isNaN(v)) {
+ return null;
+ } else {
+ return v;
+ }
+ }
+ }
+ }
+ return null;
+};
+var StringTools = function() { };
+StringTools.__name__ = true;
+StringTools.isSpace = function(s,pos) {
+ var c = HxOverrides.cca(s,pos);
+ if(!(c > 8 && c < 14)) {
+ return c == 32;
+ } else {
+ return true;
+ }
+};
+StringTools.ltrim = function(s) {
+ var l = s.length;
+ var r = 0;
+ while(r < l && StringTools.isSpace(s,r)) ++r;
+ if(r > 0) {
+ return HxOverrides.substr(s,r,l - r);
+ } else {
+ return s;
+ }
+};
+StringTools.rtrim = function(s) {
+ var l = s.length;
+ var r = 0;
+ while(r < l && StringTools.isSpace(s,l - r - 1)) ++r;
+ if(r > 0) {
+ return HxOverrides.substr(s,0,l - r);
+ } else {
+ return s;
+ }
+};
+StringTools.trim = function(s) {
+ return StringTools.ltrim(StringTools.rtrim(s));
+};
+var haxe_iterators_ArrayIterator = function(array) {
+ this.current = 0;
+ this.array = array;
+};
+haxe_iterators_ArrayIterator.__name__ = true;
+haxe_iterators_ArrayIterator.prototype = {
+ hasNext: function() {
+ return this.current < this.array.length;
+ }
+ ,next: function() {
+ return this.array[this.current++];
+ }
+};
+var js_Boot = function() { };
+js_Boot.__name__ = true;
+js_Boot.__string_rec = function(o,s) {
+ if(o == null) {
+ return "null";
+ }
+ if(s.length >= 5) {
+ return "<...>";
+ }
+ var t = typeof(o);
+ if(t == "function" && (o.__name__ || o.__ename__)) {
+ t = "object";
+ }
+ switch(t) {
+ case "function":
+ return "";
+ case "object":
+ if(((o) instanceof Array)) {
+ var str = "[";
+ s += "\t";
+ var _g = 0;
+ var _g1 = o.length;
+ while(_g < _g1) {
+ var i = _g++;
+ str += (i > 0 ? "," : "") + js_Boot.__string_rec(o[i],s);
+ }
+ str += "]";
+ return str;
+ }
+ var tostr;
+ try {
+ tostr = o.toString;
+ } catch( _g ) {
+ return "???";
+ }
+ if(tostr != null && tostr != Object.toString && typeof(tostr) == "function") {
+ var s2 = o.toString();
+ if(s2 != "[object Object]") {
+ return s2;
+ }
+ }
+ var str = "{\n";
+ s += "\t";
+ var hasp = o.hasOwnProperty != null;
+ var k = null;
+ for( k in o ) {
+ if(hasp && !o.hasOwnProperty(k)) {
+ continue;
+ }
+ if(k == "prototype" || k == "__class__" || k == "__super__" || k == "__interfaces__" || k == "__properties__") {
+ continue;
+ }
+ if(str.length != 2) {
+ str += ", \n";
+ }
+ str += s + k + " : " + js_Boot.__string_rec(o[k],s);
+ }
+ s = s.substring(1);
+ str += "\n" + s + "}";
+ return str;
+ case "string":
+ return o;
+ default:
+ return String(o);
+ }
+};
+var xrfragment_Filter = $hx_exports["xrfragment"]["Filter"] = function(str) {
+ this.q = { };
+ this.str = "";
+ if(str != null) {
+ this.parse(str);
+ }
+};
+xrfragment_Filter.__name__ = true;
+xrfragment_Filter.prototype = {
+ toObject: function() {
+ return Reflect.copy(this.q);
+ }
+ ,get: function() {
+ return Reflect.copy(this.q);
+ }
+ ,parse: function(str) {
+ var token = str.split(" ");
+ var q = { };
+ var process = function(str,prefix) {
+ if(prefix == null) {
+ prefix = "";
+ }
+ str = StringTools.trim(str);
+ var k = str.split("=")[0];
+ var v = str.split("=")[1];
+ var filter = { };
+ if(q[prefix + k]) {
+ filter = q[prefix + k];
+ }
+ if(xrfragment_XRF.isProp.match(str)) {
+ var oper = "";
+ if(str.indexOf(">") != -1) {
+ oper = ">";
+ }
+ if(str.indexOf("<") != -1) {
+ oper = "<";
+ }
+ if(xrfragment_XRF.isExclude.match(k)) {
+ k = HxOverrides.substr(k,1,null);
+ }
+ v = HxOverrides.substr(v,oper.length,null);
+ if(oper.length == 0) {
+ oper = "=";
+ }
+ var rule = { };
+ if(xrfragment_XRF.isNumber.match(v)) {
+ rule[oper] = parseFloat(v);
+ } else {
+ rule[oper] = v;
+ }
+ q["expr"] = rule;
+ }
+ var value = xrfragment_XRF.isDeep.match(str) ? k.split("*").length - 1 : 0;
+ q["deep"] = value;
+ var value = xrfragment_XRF.isExclude.match(str) ? false : true;
+ q["show"] = value;
+ var value = k.replace(xrfragment_XRF.operators.r,"");
+ q["key"] = value;
+ q["value"] = v;
+ };
+ var _g = 0;
+ var _g1 = token.length;
+ while(_g < _g1) {
+ var i = _g++;
+ process(token[i]);
+ }
+ return this.q = q;
+ }
+ ,test: function(obj) {
+ var qualify = false;
+ var _g = 0;
+ var _g1 = Reflect.fields(obj);
+ while(_g < _g1.length) {
+ var k = _g1[_g];
+ ++_g;
+ var v = Std.string(Reflect.field(obj,k));
+ if(this.testProperty(k,v)) {
+ qualify = true;
+ }
+ }
+ var _g = 0;
+ var _g1 = Reflect.fields(obj);
+ while(_g < _g1.length) {
+ var k = _g1[_g];
+ ++_g;
+ var v = Std.string(Reflect.field(obj,k));
+ if(this.testProperty(k,v,true)) {
+ qualify = false;
+ }
+ }
+ return qualify;
+ }
+ ,testProperty: function(property,value,exclude) {
+ var conds = 0;
+ var fails = 0;
+ var qualify = 0;
+ var testprop = function(expr) {
+ conds += 1;
+ fails += expr ? 0 : 1;
+ return expr;
+ };
+ if(this.q[value] != null) {
+ var v = this.q[value];
+ if(v[property] != null) {
+ return v[property];
+ }
+ }
+ if(Reflect.field(this.q,"expr")) {
+ var f = Reflect.field(this.q,"expr");
+ if(!Reflect.field(this.q,"show")) {
+ if(Reflect.field(f,"!=") != null && testprop((value == null ? "null" : "" + value) == Std.string(Reflect.field(f,"!="))) && exclude) {
+ ++qualify;
+ }
+ } else {
+ if(Reflect.field(f,"*") != null && testprop(parseFloat(value) != null)) {
+ ++qualify;
+ }
+ if(Reflect.field(f,">") != null && testprop(parseFloat(value) >= parseFloat(Reflect.field(f,">")))) {
+ ++qualify;
+ }
+ if(Reflect.field(f,"<") != null && testprop(parseFloat(value) <= parseFloat(Reflect.field(f,"<")))) {
+ ++qualify;
+ }
+ if(Reflect.field(f,"=") != null && (testprop(value == Reflect.field(f,"=")) || testprop(parseFloat(value) == parseFloat(Reflect.field(f,"="))))) {
+ ++qualify;
+ }
+ }
+ }
+ return qualify > 0;
+ }
+};
+var xrfragment_Parser = $hx_exports["xrfragment"]["Parser"] = function() { };
+xrfragment_Parser.__name__ = true;
+xrfragment_Parser.parse = function(key,value,store,index) {
+ var Frag_h = Object.create(null);
+ Frag_h["#"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_PREDEFINED_VIEW | xrfragment_XRF.PV_EXECUTE;
+ Frag_h["src"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_URL;
+ Frag_h["href"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_URL | xrfragment_XRF.T_PREDEFINED_VIEW;
+ Frag_h["tag"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["pos"] = xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_VECTOR3 | xrfragment_XRF.T_STRING | xrfragment_XRF.T_STRING_OBJ | xrfragment_XRF.METADATA | xrfragment_XRF.NAVIGATOR;
+ Frag_h["rot"] = xrfragment_XRF.QUERY_OPERATOR | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_VECTOR3 | xrfragment_XRF.METADATA | xrfragment_XRF.NAVIGATOR;
+ Frag_h["t"] = xrfragment_XRF.ASSET | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_FLOAT | xrfragment_XRF.T_VECTOR2 | xrfragment_XRF.T_STRING | xrfragment_XRF.NAVIGATOR | xrfragment_XRF.METADATA;
+ Frag_h["tv"] = xrfragment_XRF.ASSET | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_FLOAT | xrfragment_XRF.T_VECTOR2 | xrfragment_XRF.T_VECTOR3 | xrfragment_XRF.NAVIGATOR | xrfragment_XRF.METADATA;
+ Frag_h["namespace"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["SPDX"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["unit"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["description"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["session"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_URL | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.NAVIGATOR | xrfragment_XRF.METADATA | xrfragment_XRF.PROMPT;
+ var keyStripped = key.replace(xrfragment_XRF.operators.r,"");
+ var isPVDynamic = key.length > 0 && !Object.prototype.hasOwnProperty.call(Frag_h,key);
+ var isPVDefault = value.length == 0 && key.length > 0 && key == "#";
+ if(isPVDynamic) {
+ var v = new xrfragment_XRF(key,xrfragment_XRF.PV_EXECUTE | xrfragment_XRF.NAVIGATOR,index);
+ v.validate(value);
+ store[keyStripped] = v;
+ return true;
+ }
+ var v = new xrfragment_XRF(key,Frag_h[key],index);
+ if(Object.prototype.hasOwnProperty.call(Frag_h,key)) {
+ if(!v.validate(value)) {
+ console.log("src/xrfragment/Parser.hx:66:","⚠ fragment '" + key + "' has incompatible value (" + value + ")");
+ return false;
+ }
+ store[keyStripped] = v;
+ if(xrfragment_Parser.debug) {
+ console.log("src/xrfragment/Parser.hx:70:","✔ " + key + ": " + v.string);
+ }
+ } else {
+ if(typeof(value) == "string") {
+ v.guessType(v,value);
+ }
+ v.noXRF = true;
+ store[keyStripped] = v;
+ }
+ return true;
+};
+var xrfragment_URI = $hx_exports["xrfragment"]["URI"] = function() { };
+xrfragment_URI.__name__ = true;
+xrfragment_URI.parse = function(url,filter) {
+ var store = { };
+ if(url == null || url.indexOf("#") == -1) {
+ return store;
+ }
+ var fragment = url.split("#");
+ var splitArray = fragment[1].split("&");
+ var _g = 0;
+ var _g1 = splitArray.length;
+ while(_g < _g1) {
+ var i = _g++;
+ var splitByEqual = splitArray[i].split("=");
+ var regexPlus = new EReg("\\+","g");
+ var key = splitByEqual[0];
+ var value = "";
+ if(splitByEqual.length > 1) {
+ var s = regexPlus.split(splitByEqual[1]).join(" ");
+ value = decodeURIComponent(s.split("+").join(" "));
+ }
+ var ok = xrfragment_Parser.parse(key,value,store,i);
+ }
+ if(filter != null && filter != 0) {
+ var _g = 0;
+ var _g1 = Reflect.fields(store);
+ while(_g < _g1.length) {
+ var key = _g1[_g];
+ ++_g;
+ var xrf = store[key];
+ if(!xrf.is(filter)) {
+ Reflect.deleteField(store,key);
+ }
+ }
+ }
+ return store;
+};
+var xrfragment_XRF = $hx_exports["xrfragment"]["XRF"] = function(_fragment,_flags,_index) {
+ this.fragment = _fragment;
+ this.flags = _flags;
+ this.index = _index;
+};
+xrfragment_XRF.__name__ = true;
+xrfragment_XRF.set = function(flag,flags) {
+ return flags | flag;
+};
+xrfragment_XRF.unset = function(flag,flags) {
+ return flags & ~flag;
+};
+xrfragment_XRF.prototype = {
+ is: function(flag) {
+ var v = this.flags;
+ if(!(typeof(v) == "number" && ((v | 0) === v))) {
+ this.flags = 0;
+ }
+ return (this.flags & flag) != 0;
+ }
+ ,validate: function(value) {
+ this.guessType(this,value);
+ var ok = true;
+ if(!this.is(xrfragment_XRF.T_FLOAT) && this.is(xrfragment_XRF.T_VECTOR2) && !(typeof(this.x) == "number" && typeof(this.y) == "number")) {
+ ok = false;
+ }
+ if(!(this.is(xrfragment_XRF.T_VECTOR2) || this.is(xrfragment_XRF.T_STRING)) && this.is(xrfragment_XRF.T_VECTOR3) && !(typeof(this.x) == "number" && typeof(this.y) == "number" && typeof(this.z) == "number")) {
+ ok = false;
+ }
+ return ok;
+ }
+ ,guessType: function(v,str) {
+ v.string = str;
+ if(typeof(str) != "string") {
+ return;
+ }
+ if(str.length > 0) {
+ if(str.split(",").length > 1) {
+ var xyzw = str.split(",");
+ if(xyzw.length > 0) {
+ v.x = parseFloat(xyzw[0]);
+ }
+ if(xyzw.length > 1) {
+ v.y = parseFloat(xyzw[1]);
+ }
+ if(xyzw.length > 2) {
+ v.z = parseFloat(xyzw[2]);
+ }
+ if(xyzw.length > 3) {
+ v.w = parseFloat(xyzw[3]);
+ }
+ }
+ if(xrfragment_XRF.isColor.match(str)) {
+ v.color = str;
+ }
+ if(xrfragment_XRF.isFloat.match(str)) {
+ v.x = parseFloat(str);
+ v.float = v.x;
+ }
+ if(xrfragment_XRF.isInt.match(str)) {
+ v.int = Std.parseInt(str);
+ v.x = v.int;
+ }
+ v.filter = new xrfragment_Filter(v.fragment + "=" + v.string);
+ } else {
+ v.filter = new xrfragment_Filter(v.fragment);
+ }
+ }
+};
+if(typeof(performance) != "undefined" ? typeof(performance.now) == "function" : false) {
+ HxOverrides.now = performance.now.bind(performance);
+}
+String.__name__ = true;
+Array.__name__ = true;
+js_Boot.__toStr = ({ }).toString;
+xrfragment_Parser.error = "";
+xrfragment_Parser.debug = false;
+xrfragment_XRF.ASSET = 1;
+xrfragment_XRF.PROP_BIND = 2;
+xrfragment_XRF.QUERY_OPERATOR = 4;
+xrfragment_XRF.PROMPT = 8;
+xrfragment_XRF.ROUNDROBIN = 16;
+xrfragment_XRF.NAVIGATOR = 32;
+xrfragment_XRF.METADATA = 64;
+xrfragment_XRF.PV_OVERRIDE = 128;
+xrfragment_XRF.PV_EXECUTE = 256;
+xrfragment_XRF.T_COLOR = 8192;
+xrfragment_XRF.T_INT = 16384;
+xrfragment_XRF.T_FLOAT = 32768;
+xrfragment_XRF.T_VECTOR2 = 65536;
+xrfragment_XRF.T_VECTOR3 = 131072;
+xrfragment_XRF.T_URL = 262144;
+xrfragment_XRF.T_PREDEFINED_VIEW = 524288;
+xrfragment_XRF.T_STRING = 1048576;
+xrfragment_XRF.T_STRING_OBJ = 2097152;
+xrfragment_XRF.T_STRING_OBJ_PROP = 4194304;
+xrfragment_XRF.isColor = new EReg("^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$","");
+xrfragment_XRF.isInt = new EReg("^[-0-9]+$","");
+xrfragment_XRF.isFloat = new EReg("^[-0-9]+\\.[0-9]+$","");
+xrfragment_XRF.isVector = new EReg("([,]+|\\w)","");
+xrfragment_XRF.isUrl = new EReg("(://)?\\..*","");
+xrfragment_XRF.isUrlOrPretypedView = new EReg("(^#|://)?\\..*","");
+xrfragment_XRF.isString = new EReg(".*","");
+xrfragment_XRF.operators = new EReg("(^-|[\\*]+)","");
+xrfragment_XRF.isProp = new EReg("^.*=[><=]?","");
+xrfragment_XRF.isExclude = new EReg("^-","");
+xrfragment_XRF.isDeep = new EReg("\\*","");
+xrfragment_XRF.isNumber = new EReg("^[0-9\\.]+$","");
+})({});
+var xrfragment = $hx_exports["xrfragment"];
+export default xrfragment;
+var $hx_exports = typeof exports != "undefined" ? exports : typeof window != "undefined" ? window : typeof self != "undefined" ? self : this;
+(function ($global) { "use strict";
+$hx_exports["xrfragment"] = $hx_exports["xrfragment"] || {};
+var EReg = function(r,opt) {
+ this.r = new RegExp(r,opt.split("u").join(""));
+};
+EReg.__name__ = true;
+EReg.prototype = {
+ match: function(s) {
+ if(this.r.global) {
+ this.r.lastIndex = 0;
+ }
+ this.r.m = this.r.exec(s);
+ this.r.s = s;
+ return this.r.m != null;
+ }
+ ,split: function(s) {
+ var d = "#__delim__#";
+ return s.replace(this.r,d).split(d);
+ }
+};
+var HxOverrides = function() { };
+HxOverrides.__name__ = true;
+HxOverrides.cca = function(s,index) {
+ var x = s.charCodeAt(index);
+ if(x != x) {
+ return undefined;
+ }
+ return x;
+};
+HxOverrides.substr = function(s,pos,len) {
+ if(len == null) {
+ len = s.length;
+ } else if(len < 0) {
+ if(pos == 0) {
+ len = s.length + len;
+ } else {
+ return "";
+ }
+ }
+ return s.substr(pos,len);
+};
+HxOverrides.now = function() {
+ return Date.now();
+};
+Math.__name__ = true;
+var Reflect = function() { };
+Reflect.__name__ = true;
+Reflect.field = function(o,field) {
+ try {
+ return o[field];
+ } catch( _g ) {
+ return null;
+ }
+};
+Reflect.fields = function(o) {
+ var a = [];
+ if(o != null) {
+ var hasOwnProperty = Object.prototype.hasOwnProperty;
+ for( var f in o ) {
+ if(f != "__id__" && f != "hx__closures__" && hasOwnProperty.call(o,f)) {
+ a.push(f);
+ }
+ }
+ }
+ return a;
+};
+Reflect.deleteField = function(o,field) {
+ if(!Object.prototype.hasOwnProperty.call(o,field)) {
+ return false;
+ }
+ delete(o[field]);
+ return true;
+};
+Reflect.copy = function(o) {
+ if(o == null) {
+ return null;
+ }
+ var o2 = { };
+ var _g = 0;
+ var _g1 = Reflect.fields(o);
+ while(_g < _g1.length) {
+ var f = _g1[_g];
+ ++_g;
+ o2[f] = Reflect.field(o,f);
+ }
+ return o2;
+};
+var Std = function() { };
+Std.__name__ = true;
+Std.string = function(s) {
+ return js_Boot.__string_rec(s,"");
+};
+Std.parseInt = function(x) {
+ if(x != null) {
+ var _g = 0;
+ var _g1 = x.length;
+ while(_g < _g1) {
+ var i = _g++;
+ var c = x.charCodeAt(i);
+ if(c <= 8 || c >= 14 && c != 32 && c != 45) {
+ var nc = x.charCodeAt(i + 1);
+ var v = parseInt(x,nc == 120 || nc == 88 ? 16 : 10);
+ if(isNaN(v)) {
+ return null;
+ } else {
+ return v;
+ }
+ }
+ }
+ }
+ return null;
+};
+var StringTools = function() { };
+StringTools.__name__ = true;
+StringTools.isSpace = function(s,pos) {
+ var c = HxOverrides.cca(s,pos);
+ if(!(c > 8 && c < 14)) {
+ return c == 32;
+ } else {
+ return true;
+ }
+};
+StringTools.ltrim = function(s) {
+ var l = s.length;
+ var r = 0;
+ while(r < l && StringTools.isSpace(s,r)) ++r;
+ if(r > 0) {
+ return HxOverrides.substr(s,r,l - r);
+ } else {
+ return s;
+ }
+};
+StringTools.rtrim = function(s) {
+ var l = s.length;
+ var r = 0;
+ while(r < l && StringTools.isSpace(s,l - r - 1)) ++r;
+ if(r > 0) {
+ return HxOverrides.substr(s,0,l - r);
+ } else {
+ return s;
+ }
+};
+StringTools.trim = function(s) {
+ return StringTools.ltrim(StringTools.rtrim(s));
+};
+var haxe_iterators_ArrayIterator = function(array) {
+ this.current = 0;
+ this.array = array;
+};
+haxe_iterators_ArrayIterator.__name__ = true;
+haxe_iterators_ArrayIterator.prototype = {
+ hasNext: function() {
+ return this.current < this.array.length;
+ }
+ ,next: function() {
+ return this.array[this.current++];
+ }
+};
+var js_Boot = function() { };
+js_Boot.__name__ = true;
+js_Boot.__string_rec = function(o,s) {
+ if(o == null) {
+ return "null";
+ }
+ if(s.length >= 5) {
+ return "<...>";
+ }
+ var t = typeof(o);
+ if(t == "function" && (o.__name__ || o.__ename__)) {
+ t = "object";
+ }
+ switch(t) {
+ case "function":
+ return "";
+ case "object":
+ if(((o) instanceof Array)) {
+ var str = "[";
+ s += "\t";
+ var _g = 0;
+ var _g1 = o.length;
+ while(_g < _g1) {
+ var i = _g++;
+ str += (i > 0 ? "," : "") + js_Boot.__string_rec(o[i],s);
+ }
+ str += "]";
+ return str;
+ }
+ var tostr;
+ try {
+ tostr = o.toString;
+ } catch( _g ) {
+ return "???";
+ }
+ if(tostr != null && tostr != Object.toString && typeof(tostr) == "function") {
+ var s2 = o.toString();
+ if(s2 != "[object Object]") {
+ return s2;
+ }
+ }
+ var str = "{\n";
+ s += "\t";
+ var hasp = o.hasOwnProperty != null;
+ var k = null;
+ for( k in o ) {
+ if(hasp && !o.hasOwnProperty(k)) {
+ continue;
+ }
+ if(k == "prototype" || k == "__class__" || k == "__super__" || k == "__interfaces__" || k == "__properties__") {
+ continue;
+ }
+ if(str.length != 2) {
+ str += ", \n";
+ }
+ str += s + k + " : " + js_Boot.__string_rec(o[k],s);
+ }
+ s = s.substring(1);
+ str += "\n" + s + "}";
+ return str;
+ case "string":
+ return o;
+ default:
+ return String(o);
+ }
+};
+var xrfragment_Filter = $hx_exports["xrfragment"]["Filter"] = function(str) {
+ this.q = { };
+ this.str = "";
+ if(str != null) {
+ this.parse(str);
+ }
+};
+xrfragment_Filter.__name__ = true;
+xrfragment_Filter.prototype = {
+ toObject: function() {
+ return Reflect.copy(this.q);
+ }
+ ,get: function() {
+ return Reflect.copy(this.q);
+ }
+ ,parse: function(str) {
+ var token = str.split(" ");
+ var q = { };
+ var process = function(str,prefix) {
+ if(prefix == null) {
+ prefix = "";
+ }
+ str = StringTools.trim(str);
+ var k = str.split("=")[0];
+ var v = str.split("=")[1];
+ var filter = { };
+ if(q[prefix + k]) {
+ filter = q[prefix + k];
+ }
+ if(xrfragment_XRF.isProp.match(str)) {
+ var oper = "";
+ if(str.indexOf(">") != -1) {
+ oper = ">";
+ }
+ if(str.indexOf("<") != -1) {
+ oper = "<";
+ }
+ if(xrfragment_XRF.isExclude.match(k)) {
+ k = HxOverrides.substr(k,1,null);
+ }
+ v = HxOverrides.substr(v,oper.length,null);
+ if(oper.length == 0) {
+ oper = "=";
+ }
+ var rule = { };
+ if(xrfragment_XRF.isNumber.match(v)) {
+ rule[oper] = parseFloat(v);
+ } else {
+ rule[oper] = v;
+ }
+ q["expr"] = rule;
+ }
+ var value = xrfragment_XRF.isDeep.match(str) ? k.split("*").length - 1 : 0;
+ q["deep"] = value;
+ var value = xrfragment_XRF.isExclude.match(str) ? false : true;
+ q["show"] = value;
+ var value = k.replace(xrfragment_XRF.operators.r,"");
+ q["key"] = value;
+ q["value"] = v;
+ };
+ var _g = 0;
+ var _g1 = token.length;
+ while(_g < _g1) {
+ var i = _g++;
+ process(token[i]);
+ }
+ return this.q = q;
+ }
+ ,test: function(obj) {
+ var qualify = false;
+ var _g = 0;
+ var _g1 = Reflect.fields(obj);
+ while(_g < _g1.length) {
+ var k = _g1[_g];
+ ++_g;
+ var v = Std.string(Reflect.field(obj,k));
+ if(this.testProperty(k,v)) {
+ qualify = true;
+ }
+ }
+ var _g = 0;
+ var _g1 = Reflect.fields(obj);
+ while(_g < _g1.length) {
+ var k = _g1[_g];
+ ++_g;
+ var v = Std.string(Reflect.field(obj,k));
+ if(this.testProperty(k,v,true)) {
+ qualify = false;
+ }
+ }
+ return qualify;
+ }
+ ,testProperty: function(property,value,exclude) {
+ var conds = 0;
+ var fails = 0;
+ var qualify = 0;
+ var testprop = function(expr) {
+ conds += 1;
+ fails += expr ? 0 : 1;
+ return expr;
+ };
+ if(this.q[value] != null) {
+ var v = this.q[value];
+ if(v[property] != null) {
+ return v[property];
+ }
+ }
+ if(Reflect.field(this.q,"expr")) {
+ var f = Reflect.field(this.q,"expr");
+ if(!Reflect.field(this.q,"show")) {
+ if(Reflect.field(f,"!=") != null && testprop((value == null ? "null" : "" + value) == Std.string(Reflect.field(f,"!="))) && exclude) {
+ ++qualify;
+ }
+ } else {
+ if(Reflect.field(f,"*") != null && testprop(parseFloat(value) != null)) {
+ ++qualify;
+ }
+ if(Reflect.field(f,">") != null && testprop(parseFloat(value) >= parseFloat(Reflect.field(f,">")))) {
+ ++qualify;
+ }
+ if(Reflect.field(f,"<") != null && testprop(parseFloat(value) <= parseFloat(Reflect.field(f,"<")))) {
+ ++qualify;
+ }
+ if(Reflect.field(f,"=") != null && (testprop(value == Reflect.field(f,"=")) || testprop(parseFloat(value) == parseFloat(Reflect.field(f,"="))))) {
+ ++qualify;
+ }
+ }
+ }
+ return qualify > 0;
+ }
+};
+var xrfragment_Parser = $hx_exports["xrfragment"]["Parser"] = function() { };
+xrfragment_Parser.__name__ = true;
+xrfragment_Parser.parse = function(key,value,store,index) {
+ var Frag_h = Object.create(null);
+ Frag_h["#"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_PREDEFINED_VIEW | xrfragment_XRF.PV_EXECUTE;
+ Frag_h["src"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_URL;
+ Frag_h["href"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_URL | xrfragment_XRF.T_PREDEFINED_VIEW;
+ Frag_h["tag"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["pos"] = xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_VECTOR3 | xrfragment_XRF.T_STRING | xrfragment_XRF.T_STRING_OBJ | xrfragment_XRF.METADATA | xrfragment_XRF.NAVIGATOR;
+ Frag_h["rot"] = xrfragment_XRF.QUERY_OPERATOR | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_VECTOR3 | xrfragment_XRF.METADATA | xrfragment_XRF.NAVIGATOR;
+ Frag_h["t"] = xrfragment_XRF.ASSET | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_FLOAT | xrfragment_XRF.T_VECTOR2 | xrfragment_XRF.T_STRING | xrfragment_XRF.NAVIGATOR | xrfragment_XRF.METADATA;
+ Frag_h["tv"] = xrfragment_XRF.ASSET | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_FLOAT | xrfragment_XRF.T_VECTOR2 | xrfragment_XRF.T_VECTOR3 | xrfragment_XRF.NAVIGATOR | xrfragment_XRF.METADATA;
+ Frag_h["namespace"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["SPDX"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["unit"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["description"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["session"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_URL | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.NAVIGATOR | xrfragment_XRF.METADATA | xrfragment_XRF.PROMPT;
+ var keyStripped = key.replace(xrfragment_XRF.operators.r,"");
+ var isPVDynamic = key.length > 0 && !Object.prototype.hasOwnProperty.call(Frag_h,key);
+ var isPVDefault = value.length == 0 && key.length > 0 && key == "#";
+ if(isPVDynamic) {
+ var v = new xrfragment_XRF(key,xrfragment_XRF.PV_EXECUTE | xrfragment_XRF.NAVIGATOR,index);
+ v.validate(value);
+ store[keyStripped] = v;
+ return true;
+ }
+ var v = new xrfragment_XRF(key,Frag_h[key],index);
+ if(Object.prototype.hasOwnProperty.call(Frag_h,key)) {
+ if(!v.validate(value)) {
+ console.log("src/xrfragment/Parser.hx:66:","⚠ fragment '" + key + "' has incompatible value (" + value + ")");
+ return false;
+ }
+ store[keyStripped] = v;
+ if(xrfragment_Parser.debug) {
+ console.log("src/xrfragment/Parser.hx:70:","✔ " + key + ": " + v.string);
+ }
+ } else {
+ if(typeof(value) == "string") {
+ v.guessType(v,value);
+ }
+ v.noXRF = true;
+ store[keyStripped] = v;
+ }
+ return true;
+};
+var xrfragment_URI = $hx_exports["xrfragment"]["URI"] = function() { };
+xrfragment_URI.__name__ = true;
+xrfragment_URI.parse = function(url,filter) {
+ var store = { };
+ if(url == null || url.indexOf("#") == -1) {
+ return store;
+ }
+ var fragment = url.split("#");
+ var splitArray = fragment[1].split("&");
+ var _g = 0;
+ var _g1 = splitArray.length;
+ while(_g < _g1) {
+ var i = _g++;
+ var splitByEqual = splitArray[i].split("=");
+ var regexPlus = new EReg("\\+","g");
+ var key = splitByEqual[0];
+ var value = "";
+ if(splitByEqual.length > 1) {
+ var s = regexPlus.split(splitByEqual[1]).join(" ");
+ value = decodeURIComponent(s.split("+").join(" "));
+ }
+ var ok = xrfragment_Parser.parse(key,value,store,i);
+ }
+ if(filter != null && filter != 0) {
+ var _g = 0;
+ var _g1 = Reflect.fields(store);
+ while(_g < _g1.length) {
+ var key = _g1[_g];
+ ++_g;
+ var xrf = store[key];
+ if(!xrf.is(filter)) {
+ Reflect.deleteField(store,key);
+ }
+ }
+ }
+ return store;
+};
+var xrfragment_XRF = $hx_exports["xrfragment"]["XRF"] = function(_fragment,_flags,_index) {
+ this.fragment = _fragment;
+ this.flags = _flags;
+ this.index = _index;
+};
+xrfragment_XRF.__name__ = true;
+xrfragment_XRF.set = function(flag,flags) {
+ return flags | flag;
+};
+xrfragment_XRF.unset = function(flag,flags) {
+ return flags & ~flag;
+};
+xrfragment_XRF.prototype = {
+ is: function(flag) {
+ var v = this.flags;
+ if(!(typeof(v) == "number" && ((v | 0) === v))) {
+ this.flags = 0;
+ }
+ return (this.flags & flag) != 0;
+ }
+ ,validate: function(value) {
+ this.guessType(this,value);
+ var ok = true;
+ if(!this.is(xrfragment_XRF.T_FLOAT) && this.is(xrfragment_XRF.T_VECTOR2) && !(typeof(this.x) == "number" && typeof(this.y) == "number")) {
+ ok = false;
+ }
+ if(!(this.is(xrfragment_XRF.T_VECTOR2) || this.is(xrfragment_XRF.T_STRING)) && this.is(xrfragment_XRF.T_VECTOR3) && !(typeof(this.x) == "number" && typeof(this.y) == "number" && typeof(this.z) == "number")) {
+ ok = false;
+ }
+ return ok;
+ }
+ ,guessType: function(v,str) {
+ v.string = str;
+ if(typeof(str) != "string") {
+ return;
+ }
+ if(str.length > 0) {
+ if(str.split(",").length > 1) {
+ var xyzw = str.split(",");
+ if(xyzw.length > 0) {
+ v.x = parseFloat(xyzw[0]);
+ }
+ if(xyzw.length > 1) {
+ v.y = parseFloat(xyzw[1]);
+ }
+ if(xyzw.length > 2) {
+ v.z = parseFloat(xyzw[2]);
+ }
+ if(xyzw.length > 3) {
+ v.w = parseFloat(xyzw[3]);
+ }
+ }
+ if(xrfragment_XRF.isColor.match(str)) {
+ v.color = str;
+ }
+ if(xrfragment_XRF.isFloat.match(str)) {
+ v.x = parseFloat(str);
+ v.float = v.x;
+ }
+ if(xrfragment_XRF.isInt.match(str)) {
+ v.int = Std.parseInt(str);
+ v.x = v.int;
+ }
+ v.filter = new xrfragment_Filter(v.fragment + "=" + v.string);
+ } else {
+ v.filter = new xrfragment_Filter(v.fragment);
+ }
+ }
+};
+if(typeof(performance) != "undefined" ? typeof(performance.now) == "function" : false) {
+ HxOverrides.now = performance.now.bind(performance);
+}
+String.__name__ = true;
+Array.__name__ = true;
+js_Boot.__toStr = ({ }).toString;
+xrfragment_Parser.error = "";
+xrfragment_Parser.debug = false;
+xrfragment_XRF.ASSET = 1;
+xrfragment_XRF.PROP_BIND = 2;
+xrfragment_XRF.QUERY_OPERATOR = 4;
+xrfragment_XRF.PROMPT = 8;
+xrfragment_XRF.ROUNDROBIN = 16;
+xrfragment_XRF.NAVIGATOR = 32;
+xrfragment_XRF.METADATA = 64;
+xrfragment_XRF.PV_OVERRIDE = 128;
+xrfragment_XRF.PV_EXECUTE = 256;
+xrfragment_XRF.T_COLOR = 8192;
+xrfragment_XRF.T_INT = 16384;
+xrfragment_XRF.T_FLOAT = 32768;
+xrfragment_XRF.T_VECTOR2 = 65536;
+xrfragment_XRF.T_VECTOR3 = 131072;
+xrfragment_XRF.T_URL = 262144;
+xrfragment_XRF.T_PREDEFINED_VIEW = 524288;
+xrfragment_XRF.T_STRING = 1048576;
+xrfragment_XRF.T_STRING_OBJ = 2097152;
+xrfragment_XRF.T_STRING_OBJ_PROP = 4194304;
+xrfragment_XRF.isColor = new EReg("^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$","");
+xrfragment_XRF.isInt = new EReg("^[-0-9]+$","");
+xrfragment_XRF.isFloat = new EReg("^[-0-9]+\\.[0-9]+$","");
+xrfragment_XRF.isVector = new EReg("([,]+|\\w)","");
+xrfragment_XRF.isUrl = new EReg("(://)?\\..*","");
+xrfragment_XRF.isUrlOrPretypedView = new EReg("(^#|://)?\\..*","");
+xrfragment_XRF.isString = new EReg(".*","");
+xrfragment_XRF.operators = new EReg("(^-|[\\*]+)","");
+xrfragment_XRF.isProp = new EReg("^.*=[><=]?","");
+xrfragment_XRF.isExclude = new EReg("^-","");
+xrfragment_XRF.isDeep = new EReg("\\*","");
+xrfragment_XRF.isNumber = new EReg("^[0-9\\.]+$","");
+})({});
+var xrfragment = $hx_exports["xrfragment"];
+export default xrfragment;
+var $hx_exports = typeof exports != "undefined" ? exports : typeof window != "undefined" ? window : typeof self != "undefined" ? self : this;
+(function ($global) { "use strict";
+$hx_exports["xrfragment"] = $hx_exports["xrfragment"] || {};
+var EReg = function(r,opt) {
+ this.r = new RegExp(r,opt.split("u").join(""));
+};
+EReg.__name__ = true;
+EReg.prototype = {
+ match: function(s) {
+ if(this.r.global) {
+ this.r.lastIndex = 0;
+ }
+ this.r.m = this.r.exec(s);
+ this.r.s = s;
+ return this.r.m != null;
+ }
+ ,split: function(s) {
+ var d = "#__delim__#";
+ return s.replace(this.r,d).split(d);
+ }
+};
+var HxOverrides = function() { };
+HxOverrides.__name__ = true;
+HxOverrides.cca = function(s,index) {
+ var x = s.charCodeAt(index);
+ if(x != x) {
+ return undefined;
+ }
+ return x;
+};
+HxOverrides.substr = function(s,pos,len) {
+ if(len == null) {
+ len = s.length;
+ } else if(len < 0) {
+ if(pos == 0) {
+ len = s.length + len;
+ } else {
+ return "";
+ }
+ }
+ return s.substr(pos,len);
+};
+HxOverrides.now = function() {
+ return Date.now();
+};
+Math.__name__ = true;
+var Reflect = function() { };
+Reflect.__name__ = true;
+Reflect.field = function(o,field) {
+ try {
+ return o[field];
+ } catch( _g ) {
+ return null;
+ }
+};
+Reflect.fields = function(o) {
+ var a = [];
+ if(o != null) {
+ var hasOwnProperty = Object.prototype.hasOwnProperty;
+ for( var f in o ) {
+ if(f != "__id__" && f != "hx__closures__" && hasOwnProperty.call(o,f)) {
+ a.push(f);
+ }
+ }
+ }
+ return a;
+};
+Reflect.deleteField = function(o,field) {
+ if(!Object.prototype.hasOwnProperty.call(o,field)) {
+ return false;
+ }
+ delete(o[field]);
+ return true;
+};
+Reflect.copy = function(o) {
+ if(o == null) {
+ return null;
+ }
+ var o2 = { };
+ var _g = 0;
+ var _g1 = Reflect.fields(o);
+ while(_g < _g1.length) {
+ var f = _g1[_g];
+ ++_g;
+ o2[f] = Reflect.field(o,f);
+ }
+ return o2;
+};
+var Std = function() { };
+Std.__name__ = true;
+Std.string = function(s) {
+ return js_Boot.__string_rec(s,"");
+};
+Std.parseInt = function(x) {
+ if(x != null) {
+ var _g = 0;
+ var _g1 = x.length;
+ while(_g < _g1) {
+ var i = _g++;
+ var c = x.charCodeAt(i);
+ if(c <= 8 || c >= 14 && c != 32 && c != 45) {
+ var nc = x.charCodeAt(i + 1);
+ var v = parseInt(x,nc == 120 || nc == 88 ? 16 : 10);
+ if(isNaN(v)) {
+ return null;
+ } else {
+ return v;
+ }
+ }
+ }
+ }
+ return null;
+};
+var StringTools = function() { };
+StringTools.__name__ = true;
+StringTools.isSpace = function(s,pos) {
+ var c = HxOverrides.cca(s,pos);
+ if(!(c > 8 && c < 14)) {
+ return c == 32;
+ } else {
+ return true;
+ }
+};
+StringTools.ltrim = function(s) {
+ var l = s.length;
+ var r = 0;
+ while(r < l && StringTools.isSpace(s,r)) ++r;
+ if(r > 0) {
+ return HxOverrides.substr(s,r,l - r);
+ } else {
+ return s;
+ }
+};
+StringTools.rtrim = function(s) {
+ var l = s.length;
+ var r = 0;
+ while(r < l && StringTools.isSpace(s,l - r - 1)) ++r;
+ if(r > 0) {
+ return HxOverrides.substr(s,0,l - r);
+ } else {
+ return s;
+ }
+};
+StringTools.trim = function(s) {
+ return StringTools.ltrim(StringTools.rtrim(s));
+};
+var haxe_iterators_ArrayIterator = function(array) {
+ this.current = 0;
+ this.array = array;
+};
+haxe_iterators_ArrayIterator.__name__ = true;
+haxe_iterators_ArrayIterator.prototype = {
+ hasNext: function() {
+ return this.current < this.array.length;
+ }
+ ,next: function() {
+ return this.array[this.current++];
+ }
+};
+var js_Boot = function() { };
+js_Boot.__name__ = true;
+js_Boot.__string_rec = function(o,s) {
+ if(o == null) {
+ return "null";
+ }
+ if(s.length >= 5) {
+ return "<...>";
+ }
+ var t = typeof(o);
+ if(t == "function" && (o.__name__ || o.__ename__)) {
+ t = "object";
+ }
+ switch(t) {
+ case "function":
+ return "";
+ case "object":
+ if(((o) instanceof Array)) {
+ var str = "[";
+ s += "\t";
+ var _g = 0;
+ var _g1 = o.length;
+ while(_g < _g1) {
+ var i = _g++;
+ str += (i > 0 ? "," : "") + js_Boot.__string_rec(o[i],s);
+ }
+ str += "]";
+ return str;
+ }
+ var tostr;
+ try {
+ tostr = o.toString;
+ } catch( _g ) {
+ return "???";
+ }
+ if(tostr != null && tostr != Object.toString && typeof(tostr) == "function") {
+ var s2 = o.toString();
+ if(s2 != "[object Object]") {
+ return s2;
+ }
+ }
+ var str = "{\n";
+ s += "\t";
+ var hasp = o.hasOwnProperty != null;
+ var k = null;
+ for( k in o ) {
+ if(hasp && !o.hasOwnProperty(k)) {
+ continue;
+ }
+ if(k == "prototype" || k == "__class__" || k == "__super__" || k == "__interfaces__" || k == "__properties__") {
+ continue;
+ }
+ if(str.length != 2) {
+ str += ", \n";
+ }
+ str += s + k + " : " + js_Boot.__string_rec(o[k],s);
+ }
+ s = s.substring(1);
+ str += "\n" + s + "}";
+ return str;
+ case "string":
+ return o;
+ default:
+ return String(o);
+ }
+};
+var xrfragment_Filter = $hx_exports["xrfragment"]["Filter"] = function(str) {
+ this.q = { };
+ this.str = "";
+ if(str != null) {
+ this.parse(str);
+ }
+};
+xrfragment_Filter.__name__ = true;
+xrfragment_Filter.prototype = {
+ toObject: function() {
+ return Reflect.copy(this.q);
+ }
+ ,get: function() {
+ return Reflect.copy(this.q);
+ }
+ ,parse: function(str) {
+ var token = str.split(" ");
+ var q = { };
+ var process = function(str,prefix) {
+ if(prefix == null) {
+ prefix = "";
+ }
+ str = StringTools.trim(str);
+ var k = str.split("=")[0];
+ var v = str.split("=")[1];
+ var filter = { };
+ if(q[prefix + k]) {
+ filter = q[prefix + k];
+ }
+ if(xrfragment_XRF.isProp.match(str)) {
+ var oper = "";
+ if(str.indexOf(">") != -1) {
+ oper = ">";
+ }
+ if(str.indexOf("<") != -1) {
+ oper = "<";
+ }
+ if(xrfragment_XRF.isExclude.match(k)) {
+ k = HxOverrides.substr(k,1,null);
+ }
+ v = HxOverrides.substr(v,oper.length,null);
+ if(oper.length == 0) {
+ oper = "=";
+ }
+ var rule = { };
+ if(xrfragment_XRF.isNumber.match(v)) {
+ rule[oper] = parseFloat(v);
+ } else {
+ rule[oper] = v;
+ }
+ q["expr"] = rule;
+ }
+ var value = xrfragment_XRF.isDeep.match(str) ? k.split("*").length - 1 : 0;
+ q["deep"] = value;
+ var value = xrfragment_XRF.isExclude.match(str) ? false : true;
+ q["show"] = value;
+ var value = k.replace(xrfragment_XRF.operators.r,"");
+ q["key"] = value;
+ q["value"] = v;
+ };
+ var _g = 0;
+ var _g1 = token.length;
+ while(_g < _g1) {
+ var i = _g++;
+ process(token[i]);
+ }
+ return this.q = q;
+ }
+ ,test: function(obj) {
+ var qualify = false;
+ var _g = 0;
+ var _g1 = Reflect.fields(obj);
+ while(_g < _g1.length) {
+ var k = _g1[_g];
+ ++_g;
+ var v = Std.string(Reflect.field(obj,k));
+ if(this.testProperty(k,v)) {
+ qualify = true;
+ }
+ }
+ var _g = 0;
+ var _g1 = Reflect.fields(obj);
+ while(_g < _g1.length) {
+ var k = _g1[_g];
+ ++_g;
+ var v = Std.string(Reflect.field(obj,k));
+ if(this.testProperty(k,v,true)) {
+ qualify = false;
+ }
+ }
+ return qualify;
+ }
+ ,testProperty: function(property,value,exclude) {
+ var conds = 0;
+ var fails = 0;
+ var qualify = 0;
+ var testprop = function(expr) {
+ conds += 1;
+ fails += expr ? 0 : 1;
+ return expr;
+ };
+ if(this.q[value] != null) {
+ var v = this.q[value];
+ if(v[property] != null) {
+ return v[property];
+ }
+ }
+ if(Reflect.field(this.q,"expr")) {
+ var f = Reflect.field(this.q,"expr");
+ if(!Reflect.field(this.q,"show")) {
+ if(Reflect.field(f,"!=") != null && testprop((value == null ? "null" : "" + value) == Std.string(Reflect.field(f,"!="))) && exclude) {
+ ++qualify;
+ }
+ } else {
+ if(Reflect.field(f,"*") != null && testprop(parseFloat(value) != null)) {
+ ++qualify;
+ }
+ if(Reflect.field(f,">") != null && testprop(parseFloat(value) >= parseFloat(Reflect.field(f,">")))) {
+ ++qualify;
+ }
+ if(Reflect.field(f,"<") != null && testprop(parseFloat(value) <= parseFloat(Reflect.field(f,"<")))) {
+ ++qualify;
+ }
+ if(Reflect.field(f,"=") != null && (testprop(value == Reflect.field(f,"=")) || testprop(parseFloat(value) == parseFloat(Reflect.field(f,"="))))) {
+ ++qualify;
+ }
+ }
+ }
+ return qualify > 0;
+ }
+};
+var xrfragment_Parser = $hx_exports["xrfragment"]["Parser"] = function() { };
+xrfragment_Parser.__name__ = true;
+xrfragment_Parser.parse = function(key,value,store,index) {
+ var Frag_h = Object.create(null);
+ Frag_h["#"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_PREDEFINED_VIEW | xrfragment_XRF.PV_EXECUTE;
+ Frag_h["src"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_URL;
+ Frag_h["href"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_URL | xrfragment_XRF.T_PREDEFINED_VIEW;
+ Frag_h["tag"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["pos"] = xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_VECTOR3 | xrfragment_XRF.T_STRING | xrfragment_XRF.T_STRING_OBJ | xrfragment_XRF.METADATA | xrfragment_XRF.NAVIGATOR;
+ Frag_h["rot"] = xrfragment_XRF.QUERY_OPERATOR | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_VECTOR3 | xrfragment_XRF.METADATA | xrfragment_XRF.NAVIGATOR;
+ Frag_h["t"] = xrfragment_XRF.ASSET | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_FLOAT | xrfragment_XRF.T_VECTOR2 | xrfragment_XRF.T_STRING | xrfragment_XRF.NAVIGATOR | xrfragment_XRF.METADATA;
+ Frag_h["tv"] = xrfragment_XRF.ASSET | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_FLOAT | xrfragment_XRF.T_VECTOR2 | xrfragment_XRF.T_VECTOR3 | xrfragment_XRF.NAVIGATOR | xrfragment_XRF.METADATA;
+ Frag_h["namespace"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["SPDX"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["unit"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["description"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["session"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_URL | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.NAVIGATOR | xrfragment_XRF.METADATA | xrfragment_XRF.PROMPT;
+ var keyStripped = key.replace(xrfragment_XRF.operators.r,"");
+ var isPVDynamic = key.length > 0 && !Object.prototype.hasOwnProperty.call(Frag_h,key);
+ var isPVDefault = value.length == 0 && key.length > 0 && key == "#";
+ if(isPVDynamic) {
+ var v = new xrfragment_XRF(key,xrfragment_XRF.PV_EXECUTE | xrfragment_XRF.NAVIGATOR,index);
+ v.validate(value);
+ store[keyStripped] = v;
+ return true;
+ }
+ var v = new xrfragment_XRF(key,Frag_h[key],index);
+ if(Object.prototype.hasOwnProperty.call(Frag_h,key)) {
+ if(!v.validate(value)) {
+ console.log("src/xrfragment/Parser.hx:66:","⚠ fragment '" + key + "' has incompatible value (" + value + ")");
+ return false;
+ }
+ store[keyStripped] = v;
+ if(xrfragment_Parser.debug) {
+ console.log("src/xrfragment/Parser.hx:70:","✔ " + key + ": " + v.string);
+ }
+ } else {
+ if(typeof(value) == "string") {
+ v.guessType(v,value);
+ }
+ v.noXRF = true;
+ store[keyStripped] = v;
+ }
+ return true;
+};
+var xrfragment_URI = $hx_exports["xrfragment"]["URI"] = function() { };
+xrfragment_URI.__name__ = true;
+xrfragment_URI.parse = function(url,filter) {
+ var store = { };
+ if(url == null || url.indexOf("#") == -1) {
+ return store;
+ }
+ var fragment = url.split("#");
+ var splitArray = fragment[1].split("&");
+ var _g = 0;
+ var _g1 = splitArray.length;
+ while(_g < _g1) {
+ var i = _g++;
+ var splitByEqual = splitArray[i].split("=");
+ var regexPlus = new EReg("\\+","g");
+ var key = splitByEqual[0];
+ var value = "";
+ if(splitByEqual.length > 1) {
+ var s = regexPlus.split(splitByEqual[1]).join(" ");
+ value = decodeURIComponent(s.split("+").join(" "));
+ }
+ var ok = xrfragment_Parser.parse(key,value,store,i);
+ }
+ if(filter != null && filter != 0) {
+ var _g = 0;
+ var _g1 = Reflect.fields(store);
+ while(_g < _g1.length) {
+ var key = _g1[_g];
+ ++_g;
+ var xrf = store[key];
+ if(!xrf.is(filter)) {
+ Reflect.deleteField(store,key);
+ }
+ }
+ }
+ return store;
+};
+var xrfragment_XRF = $hx_exports["xrfragment"]["XRF"] = function(_fragment,_flags,_index) {
+ this.fragment = _fragment;
+ this.flags = _flags;
+ this.index = _index;
+};
+xrfragment_XRF.__name__ = true;
+xrfragment_XRF.set = function(flag,flags) {
+ return flags | flag;
+};
+xrfragment_XRF.unset = function(flag,flags) {
+ return flags & ~flag;
+};
+xrfragment_XRF.prototype = {
+ is: function(flag) {
+ var v = this.flags;
+ if(!(typeof(v) == "number" && ((v | 0) === v))) {
+ this.flags = 0;
+ }
+ return (this.flags & flag) != 0;
+ }
+ ,validate: function(value) {
+ this.guessType(this,value);
+ var ok = true;
+ if(!this.is(xrfragment_XRF.T_FLOAT) && this.is(xrfragment_XRF.T_VECTOR2) && !(typeof(this.x) == "number" && typeof(this.y) == "number")) {
+ ok = false;
+ }
+ if(!(this.is(xrfragment_XRF.T_VECTOR2) || this.is(xrfragment_XRF.T_STRING)) && this.is(xrfragment_XRF.T_VECTOR3) && !(typeof(this.x) == "number" && typeof(this.y) == "number" && typeof(this.z) == "number")) {
+ ok = false;
+ }
+ return ok;
+ }
+ ,guessType: function(v,str) {
+ v.string = str;
+ if(typeof(str) != "string") {
+ return;
+ }
+ if(str.length > 0) {
+ if(str.split(",").length > 1) {
+ var xyzw = str.split(",");
+ if(xyzw.length > 0) {
+ v.x = parseFloat(xyzw[0]);
+ }
+ if(xyzw.length > 1) {
+ v.y = parseFloat(xyzw[1]);
+ }
+ if(xyzw.length > 2) {
+ v.z = parseFloat(xyzw[2]);
+ }
+ if(xyzw.length > 3) {
+ v.w = parseFloat(xyzw[3]);
+ }
+ }
+ if(xrfragment_XRF.isColor.match(str)) {
+ v.color = str;
+ }
+ if(xrfragment_XRF.isFloat.match(str)) {
+ v.x = parseFloat(str);
+ v.float = v.x;
+ }
+ if(xrfragment_XRF.isInt.match(str)) {
+ v.int = Std.parseInt(str);
+ v.x = v.int;
+ }
+ v.filter = new xrfragment_Filter(v.fragment + "=" + v.string);
+ } else {
+ v.filter = new xrfragment_Filter(v.fragment);
+ }
+ }
+};
+if(typeof(performance) != "undefined" ? typeof(performance.now) == "function" : false) {
+ HxOverrides.now = performance.now.bind(performance);
+}
+String.__name__ = true;
+Array.__name__ = true;
+js_Boot.__toStr = ({ }).toString;
+xrfragment_Parser.error = "";
+xrfragment_Parser.debug = false;
+xrfragment_XRF.ASSET = 1;
+xrfragment_XRF.PROP_BIND = 2;
+xrfragment_XRF.QUERY_OPERATOR = 4;
+xrfragment_XRF.PROMPT = 8;
+xrfragment_XRF.ROUNDROBIN = 16;
+xrfragment_XRF.NAVIGATOR = 32;
+xrfragment_XRF.METADATA = 64;
+xrfragment_XRF.PV_OVERRIDE = 128;
+xrfragment_XRF.PV_EXECUTE = 256;
+xrfragment_XRF.T_COLOR = 8192;
+xrfragment_XRF.T_INT = 16384;
+xrfragment_XRF.T_FLOAT = 32768;
+xrfragment_XRF.T_VECTOR2 = 65536;
+xrfragment_XRF.T_VECTOR3 = 131072;
+xrfragment_XRF.T_URL = 262144;
+xrfragment_XRF.T_PREDEFINED_VIEW = 524288;
+xrfragment_XRF.T_STRING = 1048576;
+xrfragment_XRF.T_STRING_OBJ = 2097152;
+xrfragment_XRF.T_STRING_OBJ_PROP = 4194304;
+xrfragment_XRF.isColor = new EReg("^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$","");
+xrfragment_XRF.isInt = new EReg("^[-0-9]+$","");
+xrfragment_XRF.isFloat = new EReg("^[-0-9]+\\.[0-9]+$","");
+xrfragment_XRF.isVector = new EReg("([,]+|\\w)","");
+xrfragment_XRF.isUrl = new EReg("(://)?\\..*","");
+xrfragment_XRF.isUrlOrPretypedView = new EReg("(^#|://)?\\..*","");
+xrfragment_XRF.isString = new EReg(".*","");
+xrfragment_XRF.operators = new EReg("(^-|[\\*]+)","");
+xrfragment_XRF.isProp = new EReg("^.*=[><=]?","");
+xrfragment_XRF.isExclude = new EReg("^-","");
+xrfragment_XRF.isDeep = new EReg("\\*","");
+xrfragment_XRF.isNumber = new EReg("^[0-9\\.]+$","");
+})({});
+var xrfragment = $hx_exports["xrfragment"];
+export default xrfragment;
+var $hx_exports = typeof exports != "undefined" ? exports : typeof window != "undefined" ? window : typeof self != "undefined" ? self : this;
+(function ($global) { "use strict";
+$hx_exports["xrfragment"] = $hx_exports["xrfragment"] || {};
+var EReg = function(r,opt) {
+ this.r = new RegExp(r,opt.split("u").join(""));
+};
+EReg.__name__ = true;
+EReg.prototype = {
+ match: function(s) {
+ if(this.r.global) {
+ this.r.lastIndex = 0;
+ }
+ this.r.m = this.r.exec(s);
+ this.r.s = s;
+ return this.r.m != null;
+ }
+ ,split: function(s) {
+ var d = "#__delim__#";
+ return s.replace(this.r,d).split(d);
+ }
+};
+var HxOverrides = function() { };
+HxOverrides.__name__ = true;
+HxOverrides.cca = function(s,index) {
+ var x = s.charCodeAt(index);
+ if(x != x) {
+ return undefined;
+ }
+ return x;
+};
+HxOverrides.substr = function(s,pos,len) {
+ if(len == null) {
+ len = s.length;
+ } else if(len < 0) {
+ if(pos == 0) {
+ len = s.length + len;
+ } else {
+ return "";
+ }
+ }
+ return s.substr(pos,len);
+};
+HxOverrides.now = function() {
+ return Date.now();
+};
+Math.__name__ = true;
+var Reflect = function() { };
+Reflect.__name__ = true;
+Reflect.field = function(o,field) {
+ try {
+ return o[field];
+ } catch( _g ) {
+ return null;
+ }
+};
+Reflect.fields = function(o) {
+ var a = [];
+ if(o != null) {
+ var hasOwnProperty = Object.prototype.hasOwnProperty;
+ for( var f in o ) {
+ if(f != "__id__" && f != "hx__closures__" && hasOwnProperty.call(o,f)) {
+ a.push(f);
+ }
+ }
+ }
+ return a;
+};
+Reflect.deleteField = function(o,field) {
+ if(!Object.prototype.hasOwnProperty.call(o,field)) {
+ return false;
+ }
+ delete(o[field]);
+ return true;
+};
+Reflect.copy = function(o) {
+ if(o == null) {
+ return null;
+ }
+ var o2 = { };
+ var _g = 0;
+ var _g1 = Reflect.fields(o);
+ while(_g < _g1.length) {
+ var f = _g1[_g];
+ ++_g;
+ o2[f] = Reflect.field(o,f);
+ }
+ return o2;
+};
+var Std = function() { };
+Std.__name__ = true;
+Std.string = function(s) {
+ return js_Boot.__string_rec(s,"");
+};
+Std.parseInt = function(x) {
+ if(x != null) {
+ var _g = 0;
+ var _g1 = x.length;
+ while(_g < _g1) {
+ var i = _g++;
+ var c = x.charCodeAt(i);
+ if(c <= 8 || c >= 14 && c != 32 && c != 45) {
+ var nc = x.charCodeAt(i + 1);
+ var v = parseInt(x,nc == 120 || nc == 88 ? 16 : 10);
+ if(isNaN(v)) {
+ return null;
+ } else {
+ return v;
+ }
+ }
+ }
+ }
+ return null;
+};
+var StringTools = function() { };
+StringTools.__name__ = true;
+StringTools.isSpace = function(s,pos) {
+ var c = HxOverrides.cca(s,pos);
+ if(!(c > 8 && c < 14)) {
+ return c == 32;
+ } else {
+ return true;
+ }
+};
+StringTools.ltrim = function(s) {
+ var l = s.length;
+ var r = 0;
+ while(r < l && StringTools.isSpace(s,r)) ++r;
+ if(r > 0) {
+ return HxOverrides.substr(s,r,l - r);
+ } else {
+ return s;
+ }
+};
+StringTools.rtrim = function(s) {
+ var l = s.length;
+ var r = 0;
+ while(r < l && StringTools.isSpace(s,l - r - 1)) ++r;
+ if(r > 0) {
+ return HxOverrides.substr(s,0,l - r);
+ } else {
+ return s;
+ }
+};
+StringTools.trim = function(s) {
+ return StringTools.ltrim(StringTools.rtrim(s));
+};
+var haxe_iterators_ArrayIterator = function(array) {
+ this.current = 0;
+ this.array = array;
+};
+haxe_iterators_ArrayIterator.__name__ = true;
+haxe_iterators_ArrayIterator.prototype = {
+ hasNext: function() {
+ return this.current < this.array.length;
+ }
+ ,next: function() {
+ return this.array[this.current++];
+ }
+};
+var js_Boot = function() { };
+js_Boot.__name__ = true;
+js_Boot.__string_rec = function(o,s) {
+ if(o == null) {
+ return "null";
+ }
+ if(s.length >= 5) {
+ return "<...>";
+ }
+ var t = typeof(o);
+ if(t == "function" && (o.__name__ || o.__ename__)) {
+ t = "object";
+ }
+ switch(t) {
+ case "function":
+ return "";
+ case "object":
+ if(((o) instanceof Array)) {
+ var str = "[";
+ s += "\t";
+ var _g = 0;
+ var _g1 = o.length;
+ while(_g < _g1) {
+ var i = _g++;
+ str += (i > 0 ? "," : "") + js_Boot.__string_rec(o[i],s);
+ }
+ str += "]";
+ return str;
+ }
+ var tostr;
+ try {
+ tostr = o.toString;
+ } catch( _g ) {
+ return "???";
+ }
+ if(tostr != null && tostr != Object.toString && typeof(tostr) == "function") {
+ var s2 = o.toString();
+ if(s2 != "[object Object]") {
+ return s2;
+ }
+ }
+ var str = "{\n";
+ s += "\t";
+ var hasp = o.hasOwnProperty != null;
+ var k = null;
+ for( k in o ) {
+ if(hasp && !o.hasOwnProperty(k)) {
+ continue;
+ }
+ if(k == "prototype" || k == "__class__" || k == "__super__" || k == "__interfaces__" || k == "__properties__") {
+ continue;
+ }
+ if(str.length != 2) {
+ str += ", \n";
+ }
+ str += s + k + " : " + js_Boot.__string_rec(o[k],s);
+ }
+ s = s.substring(1);
+ str += "\n" + s + "}";
+ return str;
+ case "string":
+ return o;
+ default:
+ return String(o);
+ }
+};
+var xrfragment_Filter = $hx_exports["xrfragment"]["Filter"] = function(str) {
+ this.q = { };
+ this.str = "";
+ if(str != null) {
+ this.parse(str);
+ }
+};
+xrfragment_Filter.__name__ = true;
+xrfragment_Filter.prototype = {
+ toObject: function() {
+ return Reflect.copy(this.q);
+ }
+ ,get: function() {
+ return Reflect.copy(this.q);
+ }
+ ,parse: function(str) {
+ var token = str.split(" ");
+ var q = { };
+ var process = function(str,prefix) {
+ if(prefix == null) {
+ prefix = "";
+ }
+ str = StringTools.trim(str);
+ var k = str.split("=")[0];
+ var v = str.split("=")[1];
+ var filter = { };
+ if(q[prefix + k]) {
+ filter = q[prefix + k];
+ }
+ if(xrfragment_XRF.isProp.match(str)) {
+ var oper = "";
+ if(str.indexOf(">") != -1) {
+ oper = ">";
+ }
+ if(str.indexOf("<") != -1) {
+ oper = "<";
+ }
+ if(xrfragment_XRF.isExclude.match(k)) {
+ k = HxOverrides.substr(k,1,null);
+ }
+ v = HxOverrides.substr(v,oper.length,null);
+ if(oper.length == 0) {
+ oper = "=";
+ }
+ var rule = { };
+ if(xrfragment_XRF.isNumber.match(v)) {
+ rule[oper] = parseFloat(v);
+ } else {
+ rule[oper] = v;
+ }
+ q["expr"] = rule;
+ }
+ var value = xrfragment_XRF.isDeep.match(str) ? k.split("*").length - 1 : 0;
+ q["deep"] = value;
+ var value = xrfragment_XRF.isExclude.match(str) ? false : true;
+ q["show"] = value;
+ var value = k.replace(xrfragment_XRF.operators.r,"");
+ q["key"] = value;
+ q["value"] = v;
+ };
+ var _g = 0;
+ var _g1 = token.length;
+ while(_g < _g1) {
+ var i = _g++;
+ process(token[i]);
+ }
+ return this.q = q;
+ }
+ ,test: function(obj) {
+ var qualify = false;
+ var _g = 0;
+ var _g1 = Reflect.fields(obj);
+ while(_g < _g1.length) {
+ var k = _g1[_g];
+ ++_g;
+ var v = Std.string(Reflect.field(obj,k));
+ if(this.testProperty(k,v)) {
+ qualify = true;
+ }
+ }
+ var _g = 0;
+ var _g1 = Reflect.fields(obj);
+ while(_g < _g1.length) {
+ var k = _g1[_g];
+ ++_g;
+ var v = Std.string(Reflect.field(obj,k));
+ if(this.testProperty(k,v,true)) {
+ qualify = false;
+ }
+ }
+ return qualify;
+ }
+ ,testProperty: function(property,value,exclude) {
+ var conds = 0;
+ var fails = 0;
+ var qualify = 0;
+ var testprop = function(expr) {
+ conds += 1;
+ fails += expr ? 0 : 1;
+ return expr;
+ };
+ if(this.q[value] != null) {
+ var v = this.q[value];
+ if(v[property] != null) {
+ return v[property];
+ }
+ }
+ if(Reflect.field(this.q,"expr")) {
+ var f = Reflect.field(this.q,"expr");
+ if(!Reflect.field(this.q,"show")) {
+ if(Reflect.field(f,"!=") != null && testprop((value == null ? "null" : "" + value) == Std.string(Reflect.field(f,"!="))) && exclude) {
+ ++qualify;
+ }
+ } else {
+ if(Reflect.field(f,"*") != null && testprop(parseFloat(value) != null)) {
+ ++qualify;
+ }
+ if(Reflect.field(f,">") != null && testprop(parseFloat(value) >= parseFloat(Reflect.field(f,">")))) {
+ ++qualify;
+ }
+ if(Reflect.field(f,"<") != null && testprop(parseFloat(value) <= parseFloat(Reflect.field(f,"<")))) {
+ ++qualify;
+ }
+ if(Reflect.field(f,"=") != null && (testprop(value == Reflect.field(f,"=")) || testprop(parseFloat(value) == parseFloat(Reflect.field(f,"="))))) {
+ ++qualify;
+ }
+ }
+ }
+ return qualify > 0;
+ }
+};
+var xrfragment_Parser = $hx_exports["xrfragment"]["Parser"] = function() { };
+xrfragment_Parser.__name__ = true;
+xrfragment_Parser.parse = function(key,value,store,index) {
+ var Frag_h = Object.create(null);
+ Frag_h["#"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_PREDEFINED_VIEW | xrfragment_XRF.PV_EXECUTE;
+ Frag_h["src"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_URL;
+ Frag_h["href"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_URL | xrfragment_XRF.T_PREDEFINED_VIEW;
+ Frag_h["tag"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["pos"] = xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_VECTOR3 | xrfragment_XRF.T_STRING | xrfragment_XRF.T_STRING_OBJ | xrfragment_XRF.METADATA | xrfragment_XRF.NAVIGATOR;
+ Frag_h["rot"] = xrfragment_XRF.QUERY_OPERATOR | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_VECTOR3 | xrfragment_XRF.METADATA | xrfragment_XRF.NAVIGATOR;
+ Frag_h["t"] = xrfragment_XRF.ASSET | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_FLOAT | xrfragment_XRF.T_VECTOR2 | xrfragment_XRF.T_STRING | xrfragment_XRF.NAVIGATOR | xrfragment_XRF.METADATA;
+ Frag_h["tv"] = xrfragment_XRF.ASSET | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_FLOAT | xrfragment_XRF.T_VECTOR2 | xrfragment_XRF.T_VECTOR3 | xrfragment_XRF.NAVIGATOR | xrfragment_XRF.METADATA;
+ Frag_h["namespace"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["SPDX"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["unit"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["description"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["session"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_URL | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.NAVIGATOR | xrfragment_XRF.METADATA | xrfragment_XRF.PROMPT;
+ var keyStripped = key.replace(xrfragment_XRF.operators.r,"");
+ var isPVDynamic = key.length > 0 && !Object.prototype.hasOwnProperty.call(Frag_h,key);
+ var isPVDefault = value.length == 0 && key.length > 0 && key == "#";
+ if(isPVDynamic) {
+ var v = new xrfragment_XRF(key,xrfragment_XRF.PV_EXECUTE | xrfragment_XRF.NAVIGATOR,index);
+ v.validate(value);
+ store[keyStripped] = v;
+ return true;
+ }
+ var v = new xrfragment_XRF(key,Frag_h[key],index);
+ if(Object.prototype.hasOwnProperty.call(Frag_h,key)) {
+ if(!v.validate(value)) {
+ console.log("src/xrfragment/Parser.hx:66:","⚠ fragment '" + key + "' has incompatible value (" + value + ")");
+ return false;
+ }
+ store[keyStripped] = v;
+ if(xrfragment_Parser.debug) {
+ console.log("src/xrfragment/Parser.hx:70:","✔ " + key + ": " + v.string);
+ }
+ } else {
+ if(typeof(value) == "string") {
+ v.guessType(v,value);
+ }
+ v.noXRF = true;
+ store[keyStripped] = v;
+ }
+ return true;
+};
+var xrfragment_URI = $hx_exports["xrfragment"]["URI"] = function() { };
+xrfragment_URI.__name__ = true;
+xrfragment_URI.parse = function(url,filter) {
+ var store = { };
+ if(url == null || url.indexOf("#") == -1) {
+ return store;
+ }
+ var fragment = url.split("#");
+ var splitArray = fragment[1].split("&");
+ var _g = 0;
+ var _g1 = splitArray.length;
+ while(_g < _g1) {
+ var i = _g++;
+ var splitByEqual = splitArray[i].split("=");
+ var regexPlus = new EReg("\\+","g");
+ var key = splitByEqual[0];
+ var value = "";
+ if(splitByEqual.length > 1) {
+ var s = regexPlus.split(splitByEqual[1]).join(" ");
+ value = decodeURIComponent(s.split("+").join(" "));
+ }
+ var ok = xrfragment_Parser.parse(key,value,store,i);
+ }
+ if(filter != null && filter != 0) {
+ var _g = 0;
+ var _g1 = Reflect.fields(store);
+ while(_g < _g1.length) {
+ var key = _g1[_g];
+ ++_g;
+ var xrf = store[key];
+ if(!xrf.is(filter)) {
+ Reflect.deleteField(store,key);
+ }
+ }
+ }
+ return store;
+};
+var xrfragment_XRF = $hx_exports["xrfragment"]["XRF"] = function(_fragment,_flags,_index) {
+ this.fragment = _fragment;
+ this.flags = _flags;
+ this.index = _index;
+};
+xrfragment_XRF.__name__ = true;
+xrfragment_XRF.set = function(flag,flags) {
+ return flags | flag;
+};
+xrfragment_XRF.unset = function(flag,flags) {
+ return flags & ~flag;
+};
+xrfragment_XRF.prototype = {
+ is: function(flag) {
+ var v = this.flags;
+ if(!(typeof(v) == "number" && ((v | 0) === v))) {
+ this.flags = 0;
+ }
+ return (this.flags & flag) != 0;
+ }
+ ,validate: function(value) {
+ this.guessType(this,value);
+ var ok = true;
+ if(!this.is(xrfragment_XRF.T_FLOAT) && this.is(xrfragment_XRF.T_VECTOR2) && !(typeof(this.x) == "number" && typeof(this.y) == "number")) {
+ ok = false;
+ }
+ if(!(this.is(xrfragment_XRF.T_VECTOR2) || this.is(xrfragment_XRF.T_STRING)) && this.is(xrfragment_XRF.T_VECTOR3) && !(typeof(this.x) == "number" && typeof(this.y) == "number" && typeof(this.z) == "number")) {
+ ok = false;
+ }
+ return ok;
+ }
+ ,guessType: function(v,str) {
+ v.string = str;
+ if(typeof(str) != "string") {
+ return;
+ }
+ if(str.length > 0) {
+ if(str.split(",").length > 1) {
+ var xyzw = str.split(",");
+ if(xyzw.length > 0) {
+ v.x = parseFloat(xyzw[0]);
+ }
+ if(xyzw.length > 1) {
+ v.y = parseFloat(xyzw[1]);
+ }
+ if(xyzw.length > 2) {
+ v.z = parseFloat(xyzw[2]);
+ }
+ if(xyzw.length > 3) {
+ v.w = parseFloat(xyzw[3]);
+ }
+ }
+ if(xrfragment_XRF.isColor.match(str)) {
+ v.color = str;
+ }
+ if(xrfragment_XRF.isFloat.match(str)) {
+ v.x = parseFloat(str);
+ v.float = v.x;
+ }
+ if(xrfragment_XRF.isInt.match(str)) {
+ v.int = Std.parseInt(str);
+ v.x = v.int;
+ }
+ v.filter = new xrfragment_Filter(v.fragment + "=" + v.string);
+ } else {
+ v.filter = new xrfragment_Filter(v.fragment);
+ }
+ }
+};
+if(typeof(performance) != "undefined" ? typeof(performance.now) == "function" : false) {
+ HxOverrides.now = performance.now.bind(performance);
+}
+String.__name__ = true;
+Array.__name__ = true;
+js_Boot.__toStr = ({ }).toString;
+xrfragment_Parser.error = "";
+xrfragment_Parser.debug = false;
+xrfragment_XRF.ASSET = 1;
+xrfragment_XRF.PROP_BIND = 2;
+xrfragment_XRF.QUERY_OPERATOR = 4;
+xrfragment_XRF.PROMPT = 8;
+xrfragment_XRF.ROUNDROBIN = 16;
+xrfragment_XRF.NAVIGATOR = 32;
+xrfragment_XRF.METADATA = 64;
+xrfragment_XRF.PV_OVERRIDE = 128;
+xrfragment_XRF.PV_EXECUTE = 256;
+xrfragment_XRF.T_COLOR = 8192;
+xrfragment_XRF.T_INT = 16384;
+xrfragment_XRF.T_FLOAT = 32768;
+xrfragment_XRF.T_VECTOR2 = 65536;
+xrfragment_XRF.T_VECTOR3 = 131072;
+xrfragment_XRF.T_URL = 262144;
+xrfragment_XRF.T_PREDEFINED_VIEW = 524288;
+xrfragment_XRF.T_STRING = 1048576;
+xrfragment_XRF.T_STRING_OBJ = 2097152;
+xrfragment_XRF.T_STRING_OBJ_PROP = 4194304;
+xrfragment_XRF.isColor = new EReg("^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$","");
+xrfragment_XRF.isInt = new EReg("^[-0-9]+$","");
+xrfragment_XRF.isFloat = new EReg("^[-0-9]+\\.[0-9]+$","");
+xrfragment_XRF.isVector = new EReg("([,]+|\\w)","");
+xrfragment_XRF.isUrl = new EReg("(://)?\\..*","");
+xrfragment_XRF.isUrlOrPretypedView = new EReg("(^#|://)?\\..*","");
+xrfragment_XRF.isString = new EReg(".*","");
+xrfragment_XRF.operators = new EReg("(^-|[\\*]+)","");
+xrfragment_XRF.isProp = new EReg("^.*=[><=]?","");
+xrfragment_XRF.isExclude = new EReg("^-","");
+xrfragment_XRF.isDeep = new EReg("\\*","");
+xrfragment_XRF.isNumber = new EReg("^[0-9\\.]+$","");
+})({});
+var xrfragment = $hx_exports["xrfragment"];
+export default xrfragment;
+var $hx_exports = typeof exports != "undefined" ? exports : typeof window != "undefined" ? window : typeof self != "undefined" ? self : this;
+(function ($global) { "use strict";
+$hx_exports["xrfragment"] = $hx_exports["xrfragment"] || {};
+var EReg = function(r,opt) {
+ this.r = new RegExp(r,opt.split("u").join(""));
+};
+EReg.__name__ = true;
+EReg.prototype = {
+ match: function(s) {
+ if(this.r.global) {
+ this.r.lastIndex = 0;
+ }
+ this.r.m = this.r.exec(s);
+ this.r.s = s;
+ return this.r.m != null;
+ }
+ ,split: function(s) {
+ var d = "#__delim__#";
+ return s.replace(this.r,d).split(d);
+ }
+};
+var HxOverrides = function() { };
+HxOverrides.__name__ = true;
+HxOverrides.cca = function(s,index) {
+ var x = s.charCodeAt(index);
+ if(x != x) {
+ return undefined;
+ }
+ return x;
+};
+HxOverrides.substr = function(s,pos,len) {
+ if(len == null) {
+ len = s.length;
+ } else if(len < 0) {
+ if(pos == 0) {
+ len = s.length + len;
+ } else {
+ return "";
+ }
+ }
+ return s.substr(pos,len);
+};
+HxOverrides.now = function() {
+ return Date.now();
+};
+Math.__name__ = true;
+var Reflect = function() { };
+Reflect.__name__ = true;
+Reflect.field = function(o,field) {
+ try {
+ return o[field];
+ } catch( _g ) {
+ return null;
+ }
+};
+Reflect.fields = function(o) {
+ var a = [];
+ if(o != null) {
+ var hasOwnProperty = Object.prototype.hasOwnProperty;
+ for( var f in o ) {
+ if(f != "__id__" && f != "hx__closures__" && hasOwnProperty.call(o,f)) {
+ a.push(f);
+ }
+ }
+ }
+ return a;
+};
+Reflect.deleteField = function(o,field) {
+ if(!Object.prototype.hasOwnProperty.call(o,field)) {
+ return false;
+ }
+ delete(o[field]);
+ return true;
+};
+Reflect.copy = function(o) {
+ if(o == null) {
+ return null;
+ }
+ var o2 = { };
+ var _g = 0;
+ var _g1 = Reflect.fields(o);
+ while(_g < _g1.length) {
+ var f = _g1[_g];
+ ++_g;
+ o2[f] = Reflect.field(o,f);
+ }
+ return o2;
+};
+var Std = function() { };
+Std.__name__ = true;
+Std.string = function(s) {
+ return js_Boot.__string_rec(s,"");
+};
+Std.parseInt = function(x) {
+ if(x != null) {
+ var _g = 0;
+ var _g1 = x.length;
+ while(_g < _g1) {
+ var i = _g++;
+ var c = x.charCodeAt(i);
+ if(c <= 8 || c >= 14 && c != 32 && c != 45) {
+ var nc = x.charCodeAt(i + 1);
+ var v = parseInt(x,nc == 120 || nc == 88 ? 16 : 10);
+ if(isNaN(v)) {
+ return null;
+ } else {
+ return v;
+ }
+ }
+ }
+ }
+ return null;
+};
+var StringTools = function() { };
+StringTools.__name__ = true;
+StringTools.isSpace = function(s,pos) {
+ var c = HxOverrides.cca(s,pos);
+ if(!(c > 8 && c < 14)) {
+ return c == 32;
+ } else {
+ return true;
+ }
+};
+StringTools.ltrim = function(s) {
+ var l = s.length;
+ var r = 0;
+ while(r < l && StringTools.isSpace(s,r)) ++r;
+ if(r > 0) {
+ return HxOverrides.substr(s,r,l - r);
+ } else {
+ return s;
+ }
+};
+StringTools.rtrim = function(s) {
+ var l = s.length;
+ var r = 0;
+ while(r < l && StringTools.isSpace(s,l - r - 1)) ++r;
+ if(r > 0) {
+ return HxOverrides.substr(s,0,l - r);
+ } else {
+ return s;
+ }
+};
+StringTools.trim = function(s) {
+ return StringTools.ltrim(StringTools.rtrim(s));
+};
+var haxe_iterators_ArrayIterator = function(array) {
+ this.current = 0;
+ this.array = array;
+};
+haxe_iterators_ArrayIterator.__name__ = true;
+haxe_iterators_ArrayIterator.prototype = {
+ hasNext: function() {
+ return this.current < this.array.length;
+ }
+ ,next: function() {
+ return this.array[this.current++];
+ }
+};
+var js_Boot = function() { };
+js_Boot.__name__ = true;
+js_Boot.__string_rec = function(o,s) {
+ if(o == null) {
+ return "null";
+ }
+ if(s.length >= 5) {
+ return "<...>";
+ }
+ var t = typeof(o);
+ if(t == "function" && (o.__name__ || o.__ename__)) {
+ t = "object";
+ }
+ switch(t) {
+ case "function":
+ return "";
+ case "object":
+ if(((o) instanceof Array)) {
+ var str = "[";
+ s += "\t";
+ var _g = 0;
+ var _g1 = o.length;
+ while(_g < _g1) {
+ var i = _g++;
+ str += (i > 0 ? "," : "") + js_Boot.__string_rec(o[i],s);
+ }
+ str += "]";
+ return str;
+ }
+ var tostr;
+ try {
+ tostr = o.toString;
+ } catch( _g ) {
+ return "???";
+ }
+ if(tostr != null && tostr != Object.toString && typeof(tostr) == "function") {
+ var s2 = o.toString();
+ if(s2 != "[object Object]") {
+ return s2;
+ }
+ }
+ var str = "{\n";
+ s += "\t";
+ var hasp = o.hasOwnProperty != null;
+ var k = null;
+ for( k in o ) {
+ if(hasp && !o.hasOwnProperty(k)) {
+ continue;
+ }
+ if(k == "prototype" || k == "__class__" || k == "__super__" || k == "__interfaces__" || k == "__properties__") {
+ continue;
+ }
+ if(str.length != 2) {
+ str += ", \n";
+ }
+ str += s + k + " : " + js_Boot.__string_rec(o[k],s);
+ }
+ s = s.substring(1);
+ str += "\n" + s + "}";
+ return str;
+ case "string":
+ return o;
+ default:
+ return String(o);
+ }
+};
+var xrfragment_Filter = $hx_exports["xrfragment"]["Filter"] = function(str) {
+ this.q = { };
+ this.str = "";
+ if(str != null) {
+ this.parse(str);
+ }
+};
+xrfragment_Filter.__name__ = true;
+xrfragment_Filter.prototype = {
+ toObject: function() {
+ return Reflect.copy(this.q);
+ }
+ ,get: function() {
+ return Reflect.copy(this.q);
+ }
+ ,parse: function(str) {
+ var token = str.split(" ");
+ var q = { };
+ var process = function(str,prefix) {
+ if(prefix == null) {
+ prefix = "";
+ }
+ str = StringTools.trim(str);
+ var k = str.split("=")[0];
+ var v = str.split("=")[1];
+ var filter = { };
+ if(q[prefix + k]) {
+ filter = q[prefix + k];
+ }
+ if(xrfragment_XRF.isProp.match(str)) {
+ var oper = "";
+ if(str.indexOf(">") != -1) {
+ oper = ">";
+ }
+ if(str.indexOf("<") != -1) {
+ oper = "<";
+ }
+ if(xrfragment_XRF.isExclude.match(k)) {
+ k = HxOverrides.substr(k,1,null);
+ }
+ v = HxOverrides.substr(v,oper.length,null);
+ if(oper.length == 0) {
+ oper = "=";
+ }
+ var rule = { };
+ if(xrfragment_XRF.isNumber.match(v)) {
+ rule[oper] = parseFloat(v);
+ } else {
+ rule[oper] = v;
+ }
+ q["expr"] = rule;
+ }
+ var value = xrfragment_XRF.isDeep.match(str) ? k.split("*").length - 1 : 0;
+ q["deep"] = value;
+ var value = xrfragment_XRF.isExclude.match(str) ? false : true;
+ q["show"] = value;
+ var value = k.replace(xrfragment_XRF.operators.r,"");
+ q["key"] = value;
+ q["value"] = v;
+ };
+ var _g = 0;
+ var _g1 = token.length;
+ while(_g < _g1) {
+ var i = _g++;
+ process(token[i]);
+ }
+ return this.q = q;
+ }
+ ,test: function(obj) {
+ var qualify = false;
+ var _g = 0;
+ var _g1 = Reflect.fields(obj);
+ while(_g < _g1.length) {
+ var k = _g1[_g];
+ ++_g;
+ var v = Std.string(Reflect.field(obj,k));
+ if(this.testProperty(k,v)) {
+ qualify = true;
+ }
+ }
+ var _g = 0;
+ var _g1 = Reflect.fields(obj);
+ while(_g < _g1.length) {
+ var k = _g1[_g];
+ ++_g;
+ var v = Std.string(Reflect.field(obj,k));
+ if(this.testProperty(k,v,true)) {
+ qualify = false;
+ }
+ }
+ return qualify;
+ }
+ ,testProperty: function(property,value,exclude) {
+ var conds = 0;
+ var fails = 0;
+ var qualify = 0;
+ var testprop = function(expr) {
+ conds += 1;
+ fails += expr ? 0 : 1;
+ return expr;
+ };
+ if(this.q[value] != null) {
+ var v = this.q[value];
+ if(v[property] != null) {
+ return v[property];
+ }
+ }
+ if(Reflect.field(this.q,"expr")) {
+ var f = Reflect.field(this.q,"expr");
+ if(!Reflect.field(this.q,"show")) {
+ if(Reflect.field(f,"!=") != null && testprop((value == null ? "null" : "" + value) == Std.string(Reflect.field(f,"!="))) && exclude) {
+ ++qualify;
+ }
+ } else {
+ if(Reflect.field(f,"*") != null && testprop(parseFloat(value) != null)) {
+ ++qualify;
+ }
+ if(Reflect.field(f,">") != null && testprop(parseFloat(value) >= parseFloat(Reflect.field(f,">")))) {
+ ++qualify;
+ }
+ if(Reflect.field(f,"<") != null && testprop(parseFloat(value) <= parseFloat(Reflect.field(f,"<")))) {
+ ++qualify;
+ }
+ if(Reflect.field(f,"=") != null && (testprop(value == Reflect.field(f,"=")) || testprop(parseFloat(value) == parseFloat(Reflect.field(f,"="))))) {
+ ++qualify;
+ }
+ }
+ }
+ return qualify > 0;
+ }
+};
+var xrfragment_Parser = $hx_exports["xrfragment"]["Parser"] = function() { };
+xrfragment_Parser.__name__ = true;
+xrfragment_Parser.parse = function(key,value,store,index) {
+ var Frag_h = Object.create(null);
+ Frag_h["#"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_PREDEFINED_VIEW | xrfragment_XRF.PV_EXECUTE;
+ Frag_h["src"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_URL;
+ Frag_h["href"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_URL | xrfragment_XRF.T_PREDEFINED_VIEW;
+ Frag_h["tag"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["pos"] = xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_VECTOR3 | xrfragment_XRF.T_STRING | xrfragment_XRF.T_STRING_OBJ | xrfragment_XRF.METADATA | xrfragment_XRF.NAVIGATOR;
+ Frag_h["rot"] = xrfragment_XRF.QUERY_OPERATOR | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_VECTOR3 | xrfragment_XRF.METADATA | xrfragment_XRF.NAVIGATOR;
+ Frag_h["t"] = xrfragment_XRF.ASSET | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_FLOAT | xrfragment_XRF.T_VECTOR2 | xrfragment_XRF.T_STRING | xrfragment_XRF.NAVIGATOR | xrfragment_XRF.METADATA;
+ Frag_h["tv"] = xrfragment_XRF.ASSET | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_FLOAT | xrfragment_XRF.T_VECTOR2 | xrfragment_XRF.T_VECTOR3 | xrfragment_XRF.NAVIGATOR | xrfragment_XRF.METADATA;
+ Frag_h["namespace"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["SPDX"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["unit"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["description"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["session"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_URL | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.NAVIGATOR | xrfragment_XRF.METADATA | xrfragment_XRF.PROMPT;
+ var keyStripped = key.replace(xrfragment_XRF.operators.r,"");
+ var isPVDynamic = key.length > 0 && !Object.prototype.hasOwnProperty.call(Frag_h,key);
+ var isPVDefault = value.length == 0 && key.length > 0 && key == "#";
+ if(isPVDynamic) {
+ var v = new xrfragment_XRF(key,xrfragment_XRF.PV_EXECUTE | xrfragment_XRF.NAVIGATOR,index);
+ v.validate(value);
+ store[keyStripped] = v;
+ return true;
+ }
+ var v = new xrfragment_XRF(key,Frag_h[key],index);
+ if(Object.prototype.hasOwnProperty.call(Frag_h,key)) {
+ if(!v.validate(value)) {
+ console.log("src/xrfragment/Parser.hx:66:","⚠ fragment '" + key + "' has incompatible value (" + value + ")");
+ return false;
+ }
+ store[keyStripped] = v;
+ if(xrfragment_Parser.debug) {
+ console.log("src/xrfragment/Parser.hx:70:","✔ " + key + ": " + v.string);
+ }
+ } else {
+ if(typeof(value) == "string") {
+ v.guessType(v,value);
+ }
+ v.noXRF = true;
+ store[keyStripped] = v;
+ }
+ return true;
+};
+var xrfragment_URI = $hx_exports["xrfragment"]["URI"] = function() { };
+xrfragment_URI.__name__ = true;
+xrfragment_URI.parse = function(url,filter) {
+ var store = { };
+ if(url == null || url.indexOf("#") == -1) {
+ return store;
+ }
+ var fragment = url.split("#");
+ var splitArray = fragment[1].split("&");
+ var _g = 0;
+ var _g1 = splitArray.length;
+ while(_g < _g1) {
+ var i = _g++;
+ var splitByEqual = splitArray[i].split("=");
+ var regexPlus = new EReg("\\+","g");
+ var key = splitByEqual[0];
+ var value = "";
+ if(splitByEqual.length > 1) {
+ var s = regexPlus.split(splitByEqual[1]).join(" ");
+ value = decodeURIComponent(s.split("+").join(" "));
+ }
+ var ok = xrfragment_Parser.parse(key,value,store,i);
+ }
+ if(filter != null && filter != 0) {
+ var _g = 0;
+ var _g1 = Reflect.fields(store);
+ while(_g < _g1.length) {
+ var key = _g1[_g];
+ ++_g;
+ var xrf = store[key];
+ if(!xrf.is(filter)) {
+ Reflect.deleteField(store,key);
+ }
+ }
+ }
+ return store;
+};
+var xrfragment_XRF = $hx_exports["xrfragment"]["XRF"] = function(_fragment,_flags,_index) {
+ this.fragment = _fragment;
+ this.flags = _flags;
+ this.index = _index;
+};
+xrfragment_XRF.__name__ = true;
+xrfragment_XRF.set = function(flag,flags) {
+ return flags | flag;
+};
+xrfragment_XRF.unset = function(flag,flags) {
+ return flags & ~flag;
+};
+xrfragment_XRF.prototype = {
+ is: function(flag) {
+ var v = this.flags;
+ if(!(typeof(v) == "number" && ((v | 0) === v))) {
+ this.flags = 0;
+ }
+ return (this.flags & flag) != 0;
+ }
+ ,validate: function(value) {
+ this.guessType(this,value);
+ var ok = true;
+ if(!this.is(xrfragment_XRF.T_FLOAT) && this.is(xrfragment_XRF.T_VECTOR2) && !(typeof(this.x) == "number" && typeof(this.y) == "number")) {
+ ok = false;
+ }
+ if(!(this.is(xrfragment_XRF.T_VECTOR2) || this.is(xrfragment_XRF.T_STRING)) && this.is(xrfragment_XRF.T_VECTOR3) && !(typeof(this.x) == "number" && typeof(this.y) == "number" && typeof(this.z) == "number")) {
+ ok = false;
+ }
+ return ok;
+ }
+ ,guessType: function(v,str) {
+ v.string = str;
+ if(typeof(str) != "string") {
+ return;
+ }
+ if(str.length > 0) {
+ if(str.split(",").length > 1) {
+ var xyzw = str.split(",");
+ if(xyzw.length > 0) {
+ v.x = parseFloat(xyzw[0]);
+ }
+ if(xyzw.length > 1) {
+ v.y = parseFloat(xyzw[1]);
+ }
+ if(xyzw.length > 2) {
+ v.z = parseFloat(xyzw[2]);
+ }
+ if(xyzw.length > 3) {
+ v.w = parseFloat(xyzw[3]);
+ }
+ }
+ if(xrfragment_XRF.isColor.match(str)) {
+ v.color = str;
+ }
+ if(xrfragment_XRF.isFloat.match(str)) {
+ v.x = parseFloat(str);
+ v.float = v.x;
+ }
+ if(xrfragment_XRF.isInt.match(str)) {
+ v.int = Std.parseInt(str);
+ v.x = v.int;
+ }
+ v.filter = new xrfragment_Filter(v.fragment + "=" + v.string);
+ } else {
+ v.filter = new xrfragment_Filter(v.fragment);
+ }
+ }
+};
+if(typeof(performance) != "undefined" ? typeof(performance.now) == "function" : false) {
+ HxOverrides.now = performance.now.bind(performance);
+}
+String.__name__ = true;
+Array.__name__ = true;
+js_Boot.__toStr = ({ }).toString;
+xrfragment_Parser.error = "";
+xrfragment_Parser.debug = false;
+xrfragment_XRF.ASSET = 1;
+xrfragment_XRF.PROP_BIND = 2;
+xrfragment_XRF.QUERY_OPERATOR = 4;
+xrfragment_XRF.PROMPT = 8;
+xrfragment_XRF.ROUNDROBIN = 16;
+xrfragment_XRF.NAVIGATOR = 32;
+xrfragment_XRF.METADATA = 64;
+xrfragment_XRF.PV_OVERRIDE = 128;
+xrfragment_XRF.PV_EXECUTE = 256;
+xrfragment_XRF.T_COLOR = 8192;
+xrfragment_XRF.T_INT = 16384;
+xrfragment_XRF.T_FLOAT = 32768;
+xrfragment_XRF.T_VECTOR2 = 65536;
+xrfragment_XRF.T_VECTOR3 = 131072;
+xrfragment_XRF.T_URL = 262144;
+xrfragment_XRF.T_PREDEFINED_VIEW = 524288;
+xrfragment_XRF.T_STRING = 1048576;
+xrfragment_XRF.T_STRING_OBJ = 2097152;
+xrfragment_XRF.T_STRING_OBJ_PROP = 4194304;
+xrfragment_XRF.isColor = new EReg("^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$","");
+xrfragment_XRF.isInt = new EReg("^[-0-9]+$","");
+xrfragment_XRF.isFloat = new EReg("^[-0-9]+\\.[0-9]+$","");
+xrfragment_XRF.isVector = new EReg("([,]+|\\w)","");
+xrfragment_XRF.isUrl = new EReg("(://)?\\..*","");
+xrfragment_XRF.isUrlOrPretypedView = new EReg("(^#|://)?\\..*","");
+xrfragment_XRF.isString = new EReg(".*","");
+xrfragment_XRF.operators = new EReg("(^-|[\\*]+)","");
+xrfragment_XRF.isProp = new EReg("^.*=[><=]?","");
+xrfragment_XRF.isExclude = new EReg("^-","");
+xrfragment_XRF.isDeep = new EReg("\\*","");
+xrfragment_XRF.isNumber = new EReg("^[0-9\\.]+$","");
+})({});
+var xrfragment = $hx_exports["xrfragment"];
+export default xrfragment;
+var $hx_exports = typeof exports != "undefined" ? exports : typeof window != "undefined" ? window : typeof self != "undefined" ? self : this;
+(function ($global) { "use strict";
+$hx_exports["xrfragment"] = $hx_exports["xrfragment"] || {};
+var EReg = function(r,opt) {
+ this.r = new RegExp(r,opt.split("u").join(""));
+};
+EReg.__name__ = true;
+EReg.prototype = {
+ match: function(s) {
+ if(this.r.global) {
+ this.r.lastIndex = 0;
+ }
+ this.r.m = this.r.exec(s);
+ this.r.s = s;
+ return this.r.m != null;
+ }
+ ,split: function(s) {
+ var d = "#__delim__#";
+ return s.replace(this.r,d).split(d);
+ }
+};
+var HxOverrides = function() { };
+HxOverrides.__name__ = true;
+HxOverrides.cca = function(s,index) {
+ var x = s.charCodeAt(index);
+ if(x != x) {
+ return undefined;
+ }
+ return x;
+};
+HxOverrides.substr = function(s,pos,len) {
+ if(len == null) {
+ len = s.length;
+ } else if(len < 0) {
+ if(pos == 0) {
+ len = s.length + len;
+ } else {
+ return "";
+ }
+ }
+ return s.substr(pos,len);
+};
+HxOverrides.now = function() {
+ return Date.now();
+};
+Math.__name__ = true;
+var Reflect = function() { };
+Reflect.__name__ = true;
+Reflect.field = function(o,field) {
+ try {
+ return o[field];
+ } catch( _g ) {
+ return null;
+ }
+};
+Reflect.fields = function(o) {
+ var a = [];
+ if(o != null) {
+ var hasOwnProperty = Object.prototype.hasOwnProperty;
+ for( var f in o ) {
+ if(f != "__id__" && f != "hx__closures__" && hasOwnProperty.call(o,f)) {
+ a.push(f);
+ }
+ }
+ }
+ return a;
+};
+Reflect.deleteField = function(o,field) {
+ if(!Object.prototype.hasOwnProperty.call(o,field)) {
+ return false;
+ }
+ delete(o[field]);
+ return true;
+};
+Reflect.copy = function(o) {
+ if(o == null) {
+ return null;
+ }
+ var o2 = { };
+ var _g = 0;
+ var _g1 = Reflect.fields(o);
+ while(_g < _g1.length) {
+ var f = _g1[_g];
+ ++_g;
+ o2[f] = Reflect.field(o,f);
+ }
+ return o2;
+};
+var Std = function() { };
+Std.__name__ = true;
+Std.string = function(s) {
+ return js_Boot.__string_rec(s,"");
+};
+Std.parseInt = function(x) {
+ if(x != null) {
+ var _g = 0;
+ var _g1 = x.length;
+ while(_g < _g1) {
+ var i = _g++;
+ var c = x.charCodeAt(i);
+ if(c <= 8 || c >= 14 && c != 32 && c != 45) {
+ var nc = x.charCodeAt(i + 1);
+ var v = parseInt(x,nc == 120 || nc == 88 ? 16 : 10);
+ if(isNaN(v)) {
+ return null;
+ } else {
+ return v;
+ }
+ }
+ }
+ }
+ return null;
+};
+var StringTools = function() { };
+StringTools.__name__ = true;
+StringTools.isSpace = function(s,pos) {
+ var c = HxOverrides.cca(s,pos);
+ if(!(c > 8 && c < 14)) {
+ return c == 32;
+ } else {
+ return true;
+ }
+};
+StringTools.ltrim = function(s) {
+ var l = s.length;
+ var r = 0;
+ while(r < l && StringTools.isSpace(s,r)) ++r;
+ if(r > 0) {
+ return HxOverrides.substr(s,r,l - r);
+ } else {
+ return s;
+ }
+};
+StringTools.rtrim = function(s) {
+ var l = s.length;
+ var r = 0;
+ while(r < l && StringTools.isSpace(s,l - r - 1)) ++r;
+ if(r > 0) {
+ return HxOverrides.substr(s,0,l - r);
+ } else {
+ return s;
+ }
+};
+StringTools.trim = function(s) {
+ return StringTools.ltrim(StringTools.rtrim(s));
+};
+var haxe_iterators_ArrayIterator = function(array) {
+ this.current = 0;
+ this.array = array;
+};
+haxe_iterators_ArrayIterator.__name__ = true;
+haxe_iterators_ArrayIterator.prototype = {
+ hasNext: function() {
+ return this.current < this.array.length;
+ }
+ ,next: function() {
+ return this.array[this.current++];
+ }
+};
+var js_Boot = function() { };
+js_Boot.__name__ = true;
+js_Boot.__string_rec = function(o,s) {
+ if(o == null) {
+ return "null";
+ }
+ if(s.length >= 5) {
+ return "<...>";
+ }
+ var t = typeof(o);
+ if(t == "function" && (o.__name__ || o.__ename__)) {
+ t = "object";
+ }
+ switch(t) {
+ case "function":
+ return "";
+ case "object":
+ if(((o) instanceof Array)) {
+ var str = "[";
+ s += "\t";
+ var _g = 0;
+ var _g1 = o.length;
+ while(_g < _g1) {
+ var i = _g++;
+ str += (i > 0 ? "," : "") + js_Boot.__string_rec(o[i],s);
+ }
+ str += "]";
+ return str;
+ }
+ var tostr;
+ try {
+ tostr = o.toString;
+ } catch( _g ) {
+ return "???";
+ }
+ if(tostr != null && tostr != Object.toString && typeof(tostr) == "function") {
+ var s2 = o.toString();
+ if(s2 != "[object Object]") {
+ return s2;
+ }
+ }
+ var str = "{\n";
+ s += "\t";
+ var hasp = o.hasOwnProperty != null;
+ var k = null;
+ for( k in o ) {
+ if(hasp && !o.hasOwnProperty(k)) {
+ continue;
+ }
+ if(k == "prototype" || k == "__class__" || k == "__super__" || k == "__interfaces__" || k == "__properties__") {
+ continue;
+ }
+ if(str.length != 2) {
+ str += ", \n";
+ }
+ str += s + k + " : " + js_Boot.__string_rec(o[k],s);
+ }
+ s = s.substring(1);
+ str += "\n" + s + "}";
+ return str;
+ case "string":
+ return o;
+ default:
+ return String(o);
+ }
+};
+var xrfragment_Filter = $hx_exports["xrfragment"]["Filter"] = function(str) {
+ this.q = { };
+ this.str = "";
+ if(str != null) {
+ this.parse(str);
+ }
+};
+xrfragment_Filter.__name__ = true;
+xrfragment_Filter.prototype = {
+ toObject: function() {
+ return Reflect.copy(this.q);
+ }
+ ,get: function() {
+ return Reflect.copy(this.q);
+ }
+ ,parse: function(str) {
+ var token = str.split(" ");
+ var q = { };
+ var process = function(str,prefix) {
+ if(prefix == null) {
+ prefix = "";
+ }
+ str = StringTools.trim(str);
+ var k = str.split("=")[0];
+ var v = str.split("=")[1];
+ var filter = { };
+ if(q[prefix + k]) {
+ filter = q[prefix + k];
+ }
+ if(xrfragment_XRF.isProp.match(str)) {
+ var oper = "";
+ if(str.indexOf(">") != -1) {
+ oper = ">";
+ }
+ if(str.indexOf("<") != -1) {
+ oper = "<";
+ }
+ if(xrfragment_XRF.isExclude.match(k)) {
+ k = HxOverrides.substr(k,1,null);
+ }
+ v = HxOverrides.substr(v,oper.length,null);
+ if(oper.length == 0) {
+ oper = "=";
+ }
+ var rule = { };
+ if(xrfragment_XRF.isNumber.match(v)) {
+ rule[oper] = parseFloat(v);
+ } else {
+ rule[oper] = v;
+ }
+ q["expr"] = rule;
+ }
+ var value = xrfragment_XRF.isDeep.match(str) ? k.split("*").length - 1 : 0;
+ q["deep"] = value;
+ var value = xrfragment_XRF.isExclude.match(str) ? false : true;
+ q["show"] = value;
+ var value = k.replace(xrfragment_XRF.operators.r,"");
+ q["key"] = value;
+ q["value"] = v;
+ };
+ var _g = 0;
+ var _g1 = token.length;
+ while(_g < _g1) {
+ var i = _g++;
+ process(token[i]);
+ }
+ return this.q = q;
+ }
+ ,test: function(obj) {
+ var qualify = false;
+ var _g = 0;
+ var _g1 = Reflect.fields(obj);
+ while(_g < _g1.length) {
+ var k = _g1[_g];
+ ++_g;
+ var v = Std.string(Reflect.field(obj,k));
+ if(this.testProperty(k,v)) {
+ qualify = true;
+ }
+ }
+ var _g = 0;
+ var _g1 = Reflect.fields(obj);
+ while(_g < _g1.length) {
+ var k = _g1[_g];
+ ++_g;
+ var v = Std.string(Reflect.field(obj,k));
+ if(this.testProperty(k,v,true)) {
+ qualify = false;
+ }
+ }
+ return qualify;
+ }
+ ,testProperty: function(property,value,exclude) {
+ var conds = 0;
+ var fails = 0;
+ var qualify = 0;
+ var testprop = function(expr) {
+ conds += 1;
+ fails += expr ? 0 : 1;
+ return expr;
+ };
+ if(this.q[value] != null) {
+ var v = this.q[value];
+ if(v[property] != null) {
+ return v[property];
+ }
+ }
+ if(Reflect.field(this.q,"expr")) {
+ var f = Reflect.field(this.q,"expr");
+ if(!Reflect.field(this.q,"show")) {
+ if(Reflect.field(f,"!=") != null && testprop((value == null ? "null" : "" + value) == Std.string(Reflect.field(f,"!="))) && exclude) {
+ ++qualify;
+ }
+ } else {
+ if(Reflect.field(f,"*") != null && testprop(parseFloat(value) != null)) {
+ ++qualify;
+ }
+ if(Reflect.field(f,">") != null && testprop(parseFloat(value) >= parseFloat(Reflect.field(f,">")))) {
+ ++qualify;
+ }
+ if(Reflect.field(f,"<") != null && testprop(parseFloat(value) <= parseFloat(Reflect.field(f,"<")))) {
+ ++qualify;
+ }
+ if(Reflect.field(f,"=") != null && (testprop(value == Reflect.field(f,"=")) || testprop(parseFloat(value) == parseFloat(Reflect.field(f,"="))))) {
+ ++qualify;
+ }
+ }
+ }
+ return qualify > 0;
+ }
+};
+var xrfragment_Parser = $hx_exports["xrfragment"]["Parser"] = function() { };
+xrfragment_Parser.__name__ = true;
+xrfragment_Parser.parse = function(key,value,store,index) {
+ var Frag_h = Object.create(null);
+ Frag_h["#"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_PREDEFINED_VIEW | xrfragment_XRF.PV_EXECUTE;
+ Frag_h["src"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_URL;
+ Frag_h["href"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_URL | xrfragment_XRF.T_PREDEFINED_VIEW;
+ Frag_h["tag"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["pos"] = xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_VECTOR3 | xrfragment_XRF.T_STRING | xrfragment_XRF.T_STRING_OBJ | xrfragment_XRF.METADATA | xrfragment_XRF.NAVIGATOR;
+ Frag_h["rot"] = xrfragment_XRF.QUERY_OPERATOR | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_VECTOR3 | xrfragment_XRF.METADATA | xrfragment_XRF.NAVIGATOR;
+ Frag_h["t"] = xrfragment_XRF.ASSET | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_FLOAT | xrfragment_XRF.T_VECTOR2 | xrfragment_XRF.T_STRING | xrfragment_XRF.NAVIGATOR | xrfragment_XRF.METADATA;
+ Frag_h["tv"] = xrfragment_XRF.ASSET | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_FLOAT | xrfragment_XRF.T_VECTOR2 | xrfragment_XRF.T_VECTOR3 | xrfragment_XRF.NAVIGATOR | xrfragment_XRF.METADATA;
+ Frag_h["namespace"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["SPDX"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["unit"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["description"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["session"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_URL | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.NAVIGATOR | xrfragment_XRF.METADATA | xrfragment_XRF.PROMPT;
+ var keyStripped = key.replace(xrfragment_XRF.operators.r,"");
+ var isPVDynamic = key.length > 0 && !Object.prototype.hasOwnProperty.call(Frag_h,key);
+ var isPVDefault = value.length == 0 && key.length > 0 && key == "#";
+ if(isPVDynamic) {
+ var v = new xrfragment_XRF(key,xrfragment_XRF.PV_EXECUTE | xrfragment_XRF.NAVIGATOR,index);
+ v.validate(value);
+ store[keyStripped] = v;
+ return true;
+ }
+ var v = new xrfragment_XRF(key,Frag_h[key],index);
+ if(Object.prototype.hasOwnProperty.call(Frag_h,key)) {
+ if(!v.validate(value)) {
+ console.log("src/xrfragment/Parser.hx:66:","⚠ fragment '" + key + "' has incompatible value (" + value + ")");
+ return false;
+ }
+ store[keyStripped] = v;
+ if(xrfragment_Parser.debug) {
+ console.log("src/xrfragment/Parser.hx:70:","✔ " + key + ": " + v.string);
+ }
+ } else {
+ if(typeof(value) == "string") {
+ v.guessType(v,value);
+ }
+ v.noXRF = true;
+ store[keyStripped] = v;
+ }
+ return true;
+};
+var xrfragment_URI = $hx_exports["xrfragment"]["URI"] = function() { };
+xrfragment_URI.__name__ = true;
+xrfragment_URI.parse = function(url,filter) {
+ var store = { };
+ if(url == null || url.indexOf("#") == -1) {
+ return store;
+ }
+ var fragment = url.split("#");
+ var splitArray = fragment[1].split("&");
+ var _g = 0;
+ var _g1 = splitArray.length;
+ while(_g < _g1) {
+ var i = _g++;
+ var splitByEqual = splitArray[i].split("=");
+ var regexPlus = new EReg("\\+","g");
+ var key = splitByEqual[0];
+ var value = "";
+ if(splitByEqual.length > 1) {
+ var s = regexPlus.split(splitByEqual[1]).join(" ");
+ value = decodeURIComponent(s.split("+").join(" "));
+ }
+ var ok = xrfragment_Parser.parse(key,value,store,i);
+ }
+ if(filter != null && filter != 0) {
+ var _g = 0;
+ var _g1 = Reflect.fields(store);
+ while(_g < _g1.length) {
+ var key = _g1[_g];
+ ++_g;
+ var xrf = store[key];
+ if(!xrf.is(filter)) {
+ Reflect.deleteField(store,key);
+ }
+ }
+ }
+ return store;
+};
+var xrfragment_XRF = $hx_exports["xrfragment"]["XRF"] = function(_fragment,_flags,_index) {
+ this.fragment = _fragment;
+ this.flags = _flags;
+ this.index = _index;
+};
+xrfragment_XRF.__name__ = true;
+xrfragment_XRF.set = function(flag,flags) {
+ return flags | flag;
+};
+xrfragment_XRF.unset = function(flag,flags) {
+ return flags & ~flag;
+};
+xrfragment_XRF.prototype = {
+ is: function(flag) {
+ var v = this.flags;
+ if(!(typeof(v) == "number" && ((v | 0) === v))) {
+ this.flags = 0;
+ }
+ return (this.flags & flag) != 0;
+ }
+ ,validate: function(value) {
+ this.guessType(this,value);
+ var ok = true;
+ if(!this.is(xrfragment_XRF.T_FLOAT) && this.is(xrfragment_XRF.T_VECTOR2) && !(typeof(this.x) == "number" && typeof(this.y) == "number")) {
+ ok = false;
+ }
+ if(!(this.is(xrfragment_XRF.T_VECTOR2) || this.is(xrfragment_XRF.T_STRING)) && this.is(xrfragment_XRF.T_VECTOR3) && !(typeof(this.x) == "number" && typeof(this.y) == "number" && typeof(this.z) == "number")) {
+ ok = false;
+ }
+ return ok;
+ }
+ ,guessType: function(v,str) {
+ v.string = str;
+ if(typeof(str) != "string") {
+ return;
+ }
+ if(str.length > 0) {
+ if(str.split(",").length > 1) {
+ var xyzw = str.split(",");
+ if(xyzw.length > 0) {
+ v.x = parseFloat(xyzw[0]);
+ }
+ if(xyzw.length > 1) {
+ v.y = parseFloat(xyzw[1]);
+ }
+ if(xyzw.length > 2) {
+ v.z = parseFloat(xyzw[2]);
+ }
+ if(xyzw.length > 3) {
+ v.w = parseFloat(xyzw[3]);
+ }
+ }
+ if(xrfragment_XRF.isColor.match(str)) {
+ v.color = str;
+ }
+ if(xrfragment_XRF.isFloat.match(str)) {
+ v.x = parseFloat(str);
+ v.float = v.x;
+ }
+ if(xrfragment_XRF.isInt.match(str)) {
+ v.int = Std.parseInt(str);
+ v.x = v.int;
+ }
+ v.filter = new xrfragment_Filter(v.fragment + "=" + v.string);
+ } else {
+ v.filter = new xrfragment_Filter(v.fragment);
+ }
+ }
+};
+if(typeof(performance) != "undefined" ? typeof(performance.now) == "function" : false) {
+ HxOverrides.now = performance.now.bind(performance);
+}
+String.__name__ = true;
+Array.__name__ = true;
+js_Boot.__toStr = ({ }).toString;
+xrfragment_Parser.error = "";
+xrfragment_Parser.debug = false;
+xrfragment_XRF.ASSET = 1;
+xrfragment_XRF.PROP_BIND = 2;
+xrfragment_XRF.QUERY_OPERATOR = 4;
+xrfragment_XRF.PROMPT = 8;
+xrfragment_XRF.ROUNDROBIN = 16;
+xrfragment_XRF.NAVIGATOR = 32;
+xrfragment_XRF.METADATA = 64;
+xrfragment_XRF.PV_OVERRIDE = 128;
+xrfragment_XRF.PV_EXECUTE = 256;
+xrfragment_XRF.T_COLOR = 8192;
+xrfragment_XRF.T_INT = 16384;
+xrfragment_XRF.T_FLOAT = 32768;
+xrfragment_XRF.T_VECTOR2 = 65536;
+xrfragment_XRF.T_VECTOR3 = 131072;
+xrfragment_XRF.T_URL = 262144;
+xrfragment_XRF.T_PREDEFINED_VIEW = 524288;
+xrfragment_XRF.T_STRING = 1048576;
+xrfragment_XRF.T_STRING_OBJ = 2097152;
+xrfragment_XRF.T_STRING_OBJ_PROP = 4194304;
+xrfragment_XRF.isColor = new EReg("^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$","");
+xrfragment_XRF.isInt = new EReg("^[-0-9]+$","");
+xrfragment_XRF.isFloat = new EReg("^[-0-9]+\\.[0-9]+$","");
+xrfragment_XRF.isVector = new EReg("([,]+|\\w)","");
+xrfragment_XRF.isUrl = new EReg("(://)?\\..*","");
+xrfragment_XRF.isUrlOrPretypedView = new EReg("(^#|://)?\\..*","");
+xrfragment_XRF.isString = new EReg(".*","");
+xrfragment_XRF.operators = new EReg("(^-|[\\*]+)","");
+xrfragment_XRF.isProp = new EReg("^.*=[><=]?","");
+xrfragment_XRF.isExclude = new EReg("^-","");
+xrfragment_XRF.isDeep = new EReg("\\*","");
+xrfragment_XRF.isNumber = new EReg("^[0-9\\.]+$","");
+})({});
+var xrfragment = $hx_exports["xrfragment"];
+export default xrfragment;
+var $hx_exports = typeof exports != "undefined" ? exports : typeof window != "undefined" ? window : typeof self != "undefined" ? self : this;
+(function ($global) { "use strict";
+$hx_exports["xrfragment"] = $hx_exports["xrfragment"] || {};
+var EReg = function(r,opt) {
+ this.r = new RegExp(r,opt.split("u").join(""));
+};
+EReg.__name__ = true;
+EReg.prototype = {
+ match: function(s) {
+ if(this.r.global) {
+ this.r.lastIndex = 0;
+ }
+ this.r.m = this.r.exec(s);
+ this.r.s = s;
+ return this.r.m != null;
+ }
+ ,split: function(s) {
+ var d = "#__delim__#";
+ return s.replace(this.r,d).split(d);
+ }
+};
+var HxOverrides = function() { };
+HxOverrides.__name__ = true;
+HxOverrides.cca = function(s,index) {
+ var x = s.charCodeAt(index);
+ if(x != x) {
+ return undefined;
+ }
+ return x;
+};
+HxOverrides.substr = function(s,pos,len) {
+ if(len == null) {
+ len = s.length;
+ } else if(len < 0) {
+ if(pos == 0) {
+ len = s.length + len;
+ } else {
+ return "";
+ }
+ }
+ return s.substr(pos,len);
+};
+HxOverrides.now = function() {
+ return Date.now();
+};
+Math.__name__ = true;
+var Reflect = function() { };
+Reflect.__name__ = true;
+Reflect.field = function(o,field) {
+ try {
+ return o[field];
+ } catch( _g ) {
+ return null;
+ }
+};
+Reflect.fields = function(o) {
+ var a = [];
+ if(o != null) {
+ var hasOwnProperty = Object.prototype.hasOwnProperty;
+ for( var f in o ) {
+ if(f != "__id__" && f != "hx__closures__" && hasOwnProperty.call(o,f)) {
+ a.push(f);
+ }
+ }
+ }
+ return a;
+};
+Reflect.deleteField = function(o,field) {
+ if(!Object.prototype.hasOwnProperty.call(o,field)) {
+ return false;
+ }
+ delete(o[field]);
+ return true;
+};
+Reflect.copy = function(o) {
+ if(o == null) {
+ return null;
+ }
+ var o2 = { };
+ var _g = 0;
+ var _g1 = Reflect.fields(o);
+ while(_g < _g1.length) {
+ var f = _g1[_g];
+ ++_g;
+ o2[f] = Reflect.field(o,f);
+ }
+ return o2;
+};
+var Std = function() { };
+Std.__name__ = true;
+Std.string = function(s) {
+ return js_Boot.__string_rec(s,"");
+};
+Std.parseInt = function(x) {
+ if(x != null) {
+ var _g = 0;
+ var _g1 = x.length;
+ while(_g < _g1) {
+ var i = _g++;
+ var c = x.charCodeAt(i);
+ if(c <= 8 || c >= 14 && c != 32 && c != 45) {
+ var nc = x.charCodeAt(i + 1);
+ var v = parseInt(x,nc == 120 || nc == 88 ? 16 : 10);
+ if(isNaN(v)) {
+ return null;
+ } else {
+ return v;
+ }
+ }
+ }
+ }
+ return null;
+};
+var StringTools = function() { };
+StringTools.__name__ = true;
+StringTools.isSpace = function(s,pos) {
+ var c = HxOverrides.cca(s,pos);
+ if(!(c > 8 && c < 14)) {
+ return c == 32;
+ } else {
+ return true;
+ }
+};
+StringTools.ltrim = function(s) {
+ var l = s.length;
+ var r = 0;
+ while(r < l && StringTools.isSpace(s,r)) ++r;
+ if(r > 0) {
+ return HxOverrides.substr(s,r,l - r);
+ } else {
+ return s;
+ }
+};
+StringTools.rtrim = function(s) {
+ var l = s.length;
+ var r = 0;
+ while(r < l && StringTools.isSpace(s,l - r - 1)) ++r;
+ if(r > 0) {
+ return HxOverrides.substr(s,0,l - r);
+ } else {
+ return s;
+ }
+};
+StringTools.trim = function(s) {
+ return StringTools.ltrim(StringTools.rtrim(s));
+};
+var haxe_iterators_ArrayIterator = function(array) {
+ this.current = 0;
+ this.array = array;
+};
+haxe_iterators_ArrayIterator.__name__ = true;
+haxe_iterators_ArrayIterator.prototype = {
+ hasNext: function() {
+ return this.current < this.array.length;
+ }
+ ,next: function() {
+ return this.array[this.current++];
+ }
+};
+var js_Boot = function() { };
+js_Boot.__name__ = true;
+js_Boot.__string_rec = function(o,s) {
+ if(o == null) {
+ return "null";
+ }
+ if(s.length >= 5) {
+ return "<...>";
+ }
+ var t = typeof(o);
+ if(t == "function" && (o.__name__ || o.__ename__)) {
+ t = "object";
+ }
+ switch(t) {
+ case "function":
+ return "";
+ case "object":
+ if(((o) instanceof Array)) {
+ var str = "[";
+ s += "\t";
+ var _g = 0;
+ var _g1 = o.length;
+ while(_g < _g1) {
+ var i = _g++;
+ str += (i > 0 ? "," : "") + js_Boot.__string_rec(o[i],s);
+ }
+ str += "]";
+ return str;
+ }
+ var tostr;
+ try {
+ tostr = o.toString;
+ } catch( _g ) {
+ return "???";
+ }
+ if(tostr != null && tostr != Object.toString && typeof(tostr) == "function") {
+ var s2 = o.toString();
+ if(s2 != "[object Object]") {
+ return s2;
+ }
+ }
+ var str = "{\n";
+ s += "\t";
+ var hasp = o.hasOwnProperty != null;
+ var k = null;
+ for( k in o ) {
+ if(hasp && !o.hasOwnProperty(k)) {
+ continue;
+ }
+ if(k == "prototype" || k == "__class__" || k == "__super__" || k == "__interfaces__" || k == "__properties__") {
+ continue;
+ }
+ if(str.length != 2) {
+ str += ", \n";
+ }
+ str += s + k + " : " + js_Boot.__string_rec(o[k],s);
+ }
+ s = s.substring(1);
+ str += "\n" + s + "}";
+ return str;
+ case "string":
+ return o;
+ default:
+ return String(o);
+ }
+};
+var xrfragment_Filter = $hx_exports["xrfragment"]["Filter"] = function(str) {
+ this.q = { };
+ this.str = "";
+ if(str != null) {
+ this.parse(str);
+ }
+};
+xrfragment_Filter.__name__ = true;
+xrfragment_Filter.prototype = {
+ toObject: function() {
+ return Reflect.copy(this.q);
+ }
+ ,get: function() {
+ return Reflect.copy(this.q);
+ }
+ ,parse: function(str) {
+ var token = str.split(" ");
+ var q = { };
+ var process = function(str,prefix) {
+ if(prefix == null) {
+ prefix = "";
+ }
+ str = StringTools.trim(str);
+ var k = str.split("=")[0];
+ var v = str.split("=")[1];
+ var filter = { };
+ if(q[prefix + k]) {
+ filter = q[prefix + k];
+ }
+ if(xrfragment_XRF.isProp.match(str)) {
+ var oper = "";
+ if(str.indexOf(">") != -1) {
+ oper = ">";
+ }
+ if(str.indexOf("<") != -1) {
+ oper = "<";
+ }
+ if(xrfragment_XRF.isExclude.match(k)) {
+ k = HxOverrides.substr(k,1,null);
+ }
+ v = HxOverrides.substr(v,oper.length,null);
+ if(oper.length == 0) {
+ oper = "=";
+ }
+ var rule = { };
+ if(xrfragment_XRF.isNumber.match(v)) {
+ rule[oper] = parseFloat(v);
+ } else {
+ rule[oper] = v;
+ }
+ q["expr"] = rule;
+ }
+ var value = xrfragment_XRF.isDeep.match(str) ? k.split("*").length - 1 : 0;
+ q["deep"] = value;
+ var value = xrfragment_XRF.isExclude.match(str) ? false : true;
+ q["show"] = value;
+ var value = k.replace(xrfragment_XRF.operators.r,"");
+ q["key"] = value;
+ q["value"] = v;
+ };
+ var _g = 0;
+ var _g1 = token.length;
+ while(_g < _g1) {
+ var i = _g++;
+ process(token[i]);
+ }
+ return this.q = q;
+ }
+ ,test: function(obj) {
+ var qualify = false;
+ var _g = 0;
+ var _g1 = Reflect.fields(obj);
+ while(_g < _g1.length) {
+ var k = _g1[_g];
+ ++_g;
+ var v = Std.string(Reflect.field(obj,k));
+ if(this.testProperty(k,v)) {
+ qualify = true;
+ }
+ }
+ var _g = 0;
+ var _g1 = Reflect.fields(obj);
+ while(_g < _g1.length) {
+ var k = _g1[_g];
+ ++_g;
+ var v = Std.string(Reflect.field(obj,k));
+ if(this.testProperty(k,v,true)) {
+ qualify = false;
+ }
+ }
+ return qualify;
+ }
+ ,testProperty: function(property,value,exclude) {
+ var conds = 0;
+ var fails = 0;
+ var qualify = 0;
+ var testprop = function(expr) {
+ conds += 1;
+ fails += expr ? 0 : 1;
+ return expr;
+ };
+ if(this.q[value] != null) {
+ var v = this.q[value];
+ if(v[property] != null) {
+ return v[property];
+ }
+ }
+ if(Reflect.field(this.q,"expr")) {
+ var f = Reflect.field(this.q,"expr");
+ if(!Reflect.field(this.q,"show")) {
+ if(Reflect.field(f,"!=") != null && testprop((value == null ? "null" : "" + value) == Std.string(Reflect.field(f,"!="))) && exclude) {
+ ++qualify;
+ }
+ } else {
+ if(Reflect.field(f,"*") != null && testprop(parseFloat(value) != null)) {
+ ++qualify;
+ }
+ if(Reflect.field(f,">") != null && testprop(parseFloat(value) >= parseFloat(Reflect.field(f,">")))) {
+ ++qualify;
+ }
+ if(Reflect.field(f,"<") != null && testprop(parseFloat(value) <= parseFloat(Reflect.field(f,"<")))) {
+ ++qualify;
+ }
+ if(Reflect.field(f,"=") != null && (testprop(value == Reflect.field(f,"=")) || testprop(parseFloat(value) == parseFloat(Reflect.field(f,"="))))) {
+ ++qualify;
+ }
+ }
+ }
+ return qualify > 0;
+ }
+};
+var xrfragment_Parser = $hx_exports["xrfragment"]["Parser"] = function() { };
+xrfragment_Parser.__name__ = true;
+xrfragment_Parser.parse = function(key,value,store,index) {
+ var Frag_h = Object.create(null);
+ Frag_h["#"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_PREDEFINED_VIEW | xrfragment_XRF.PV_EXECUTE;
+ Frag_h["src"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_URL;
+ Frag_h["href"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_URL | xrfragment_XRF.T_PREDEFINED_VIEW;
+ Frag_h["tag"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["pos"] = xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_VECTOR3 | xrfragment_XRF.T_STRING | xrfragment_XRF.T_STRING_OBJ | xrfragment_XRF.METADATA | xrfragment_XRF.NAVIGATOR;
+ Frag_h["rot"] = xrfragment_XRF.QUERY_OPERATOR | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_VECTOR3 | xrfragment_XRF.METADATA | xrfragment_XRF.NAVIGATOR;
+ Frag_h["t"] = xrfragment_XRF.ASSET | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_FLOAT | xrfragment_XRF.T_VECTOR2 | xrfragment_XRF.T_STRING | xrfragment_XRF.NAVIGATOR | xrfragment_XRF.METADATA;
+ Frag_h["tv"] = xrfragment_XRF.ASSET | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_FLOAT | xrfragment_XRF.T_VECTOR2 | xrfragment_XRF.T_VECTOR3 | xrfragment_XRF.NAVIGATOR | xrfragment_XRF.METADATA;
+ Frag_h["namespace"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["SPDX"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["unit"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["description"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["session"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_URL | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.NAVIGATOR | xrfragment_XRF.METADATA | xrfragment_XRF.PROMPT;
+ var keyStripped = key.replace(xrfragment_XRF.operators.r,"");
+ var isPVDynamic = key.length > 0 && !Object.prototype.hasOwnProperty.call(Frag_h,key);
+ var isPVDefault = value.length == 0 && key.length > 0 && key == "#";
+ if(isPVDynamic) {
+ var v = new xrfragment_XRF(key,xrfragment_XRF.PV_EXECUTE | xrfragment_XRF.NAVIGATOR,index);
+ v.validate(value);
+ store[keyStripped] = v;
+ return true;
+ }
+ var v = new xrfragment_XRF(key,Frag_h[key],index);
+ if(Object.prototype.hasOwnProperty.call(Frag_h,key)) {
+ if(!v.validate(value)) {
+ console.log("src/xrfragment/Parser.hx:66:","⚠ fragment '" + key + "' has incompatible value (" + value + ")");
+ return false;
+ }
+ store[keyStripped] = v;
+ if(xrfragment_Parser.debug) {
+ console.log("src/xrfragment/Parser.hx:70:","✔ " + key + ": " + v.string);
+ }
+ } else {
+ if(typeof(value) == "string") {
+ v.guessType(v,value);
+ }
+ v.noXRF = true;
+ store[keyStripped] = v;
+ }
+ return true;
+};
+var xrfragment_URI = $hx_exports["xrfragment"]["URI"] = function() { };
+xrfragment_URI.__name__ = true;
+xrfragment_URI.parse = function(url,filter) {
+ var store = { };
+ if(url == null || url.indexOf("#") == -1) {
+ return store;
+ }
+ var fragment = url.split("#");
+ var splitArray = fragment[1].split("&");
+ var _g = 0;
+ var _g1 = splitArray.length;
+ while(_g < _g1) {
+ var i = _g++;
+ var splitByEqual = splitArray[i].split("=");
+ var regexPlus = new EReg("\\+","g");
+ var key = splitByEqual[0];
+ var value = "";
+ if(splitByEqual.length > 1) {
+ var s = regexPlus.split(splitByEqual[1]).join(" ");
+ value = decodeURIComponent(s.split("+").join(" "));
+ }
+ var ok = xrfragment_Parser.parse(key,value,store,i);
+ }
+ if(filter != null && filter != 0) {
+ var _g = 0;
+ var _g1 = Reflect.fields(store);
+ while(_g < _g1.length) {
+ var key = _g1[_g];
+ ++_g;
+ var xrf = store[key];
+ if(!xrf.is(filter)) {
+ Reflect.deleteField(store,key);
+ }
+ }
+ }
+ return store;
+};
+var xrfragment_XRF = $hx_exports["xrfragment"]["XRF"] = function(_fragment,_flags,_index) {
+ this.fragment = _fragment;
+ this.flags = _flags;
+ this.index = _index;
+};
+xrfragment_XRF.__name__ = true;
+xrfragment_XRF.set = function(flag,flags) {
+ return flags | flag;
+};
+xrfragment_XRF.unset = function(flag,flags) {
+ return flags & ~flag;
+};
+xrfragment_XRF.prototype = {
+ is: function(flag) {
+ var v = this.flags;
+ if(!(typeof(v) == "number" && ((v | 0) === v))) {
+ this.flags = 0;
+ }
+ return (this.flags & flag) != 0;
+ }
+ ,validate: function(value) {
+ this.guessType(this,value);
+ var ok = true;
+ if(!this.is(xrfragment_XRF.T_FLOAT) && this.is(xrfragment_XRF.T_VECTOR2) && !(typeof(this.x) == "number" && typeof(this.y) == "number")) {
+ ok = false;
+ }
+ if(!(this.is(xrfragment_XRF.T_VECTOR2) || this.is(xrfragment_XRF.T_STRING)) && this.is(xrfragment_XRF.T_VECTOR3) && !(typeof(this.x) == "number" && typeof(this.y) == "number" && typeof(this.z) == "number")) {
+ ok = false;
+ }
+ return ok;
+ }
+ ,guessType: function(v,str) {
+ v.string = str;
+ if(typeof(str) != "string") {
+ return;
+ }
+ if(str.length > 0) {
+ if(str.split(",").length > 1) {
+ var xyzw = str.split(",");
+ if(xyzw.length > 0) {
+ v.x = parseFloat(xyzw[0]);
+ }
+ if(xyzw.length > 1) {
+ v.y = parseFloat(xyzw[1]);
+ }
+ if(xyzw.length > 2) {
+ v.z = parseFloat(xyzw[2]);
+ }
+ if(xyzw.length > 3) {
+ v.w = parseFloat(xyzw[3]);
+ }
+ }
+ if(xrfragment_XRF.isColor.match(str)) {
+ v.color = str;
+ }
+ if(xrfragment_XRF.isFloat.match(str)) {
+ v.x = parseFloat(str);
+ v.float = v.x;
+ }
+ if(xrfragment_XRF.isInt.match(str)) {
+ v.int = Std.parseInt(str);
+ v.x = v.int;
+ }
+ v.filter = new xrfragment_Filter(v.fragment + "=" + v.string);
+ } else {
+ v.filter = new xrfragment_Filter(v.fragment);
+ }
+ }
+};
+if(typeof(performance) != "undefined" ? typeof(performance.now) == "function" : false) {
+ HxOverrides.now = performance.now.bind(performance);
+}
+String.__name__ = true;
+Array.__name__ = true;
+js_Boot.__toStr = ({ }).toString;
+xrfragment_Parser.error = "";
+xrfragment_Parser.debug = false;
+xrfragment_XRF.ASSET = 1;
+xrfragment_XRF.PROP_BIND = 2;
+xrfragment_XRF.QUERY_OPERATOR = 4;
+xrfragment_XRF.PROMPT = 8;
+xrfragment_XRF.ROUNDROBIN = 16;
+xrfragment_XRF.NAVIGATOR = 32;
+xrfragment_XRF.METADATA = 64;
+xrfragment_XRF.PV_OVERRIDE = 128;
+xrfragment_XRF.PV_EXECUTE = 256;
+xrfragment_XRF.T_COLOR = 8192;
+xrfragment_XRF.T_INT = 16384;
+xrfragment_XRF.T_FLOAT = 32768;
+xrfragment_XRF.T_VECTOR2 = 65536;
+xrfragment_XRF.T_VECTOR3 = 131072;
+xrfragment_XRF.T_URL = 262144;
+xrfragment_XRF.T_PREDEFINED_VIEW = 524288;
+xrfragment_XRF.T_STRING = 1048576;
+xrfragment_XRF.T_STRING_OBJ = 2097152;
+xrfragment_XRF.T_STRING_OBJ_PROP = 4194304;
+xrfragment_XRF.isColor = new EReg("^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$","");
+xrfragment_XRF.isInt = new EReg("^[-0-9]+$","");
+xrfragment_XRF.isFloat = new EReg("^[-0-9]+\\.[0-9]+$","");
+xrfragment_XRF.isVector = new EReg("([,]+|\\w)","");
+xrfragment_XRF.isUrl = new EReg("(://)?\\..*","");
+xrfragment_XRF.isUrlOrPretypedView = new EReg("(^#|://)?\\..*","");
+xrfragment_XRF.isString = new EReg(".*","");
+xrfragment_XRF.operators = new EReg("(^-|[\\*]+)","");
+xrfragment_XRF.isProp = new EReg("^.*=[><=]?","");
+xrfragment_XRF.isExclude = new EReg("^-","");
+xrfragment_XRF.isDeep = new EReg("\\*","");
+xrfragment_XRF.isNumber = new EReg("^[0-9\\.]+$","");
+})({});
+var xrfragment = $hx_exports["xrfragment"];
+export default xrfragment;
+var $hx_exports = typeof exports != "undefined" ? exports : typeof window != "undefined" ? window : typeof self != "undefined" ? self : this;
+(function ($global) { "use strict";
+$hx_exports["xrfragment"] = $hx_exports["xrfragment"] || {};
+var EReg = function(r,opt) {
+ this.r = new RegExp(r,opt.split("u").join(""));
+};
+EReg.__name__ = true;
+EReg.prototype = {
+ match: function(s) {
+ if(this.r.global) {
+ this.r.lastIndex = 0;
+ }
+ this.r.m = this.r.exec(s);
+ this.r.s = s;
+ return this.r.m != null;
+ }
+ ,split: function(s) {
+ var d = "#__delim__#";
+ return s.replace(this.r,d).split(d);
+ }
+};
+var HxOverrides = function() { };
+HxOverrides.__name__ = true;
+HxOverrides.cca = function(s,index) {
+ var x = s.charCodeAt(index);
+ if(x != x) {
+ return undefined;
+ }
+ return x;
+};
+HxOverrides.substr = function(s,pos,len) {
+ if(len == null) {
+ len = s.length;
+ } else if(len < 0) {
+ if(pos == 0) {
+ len = s.length + len;
+ } else {
+ return "";
+ }
+ }
+ return s.substr(pos,len);
+};
+HxOverrides.now = function() {
+ return Date.now();
+};
+Math.__name__ = true;
+var Reflect = function() { };
+Reflect.__name__ = true;
+Reflect.field = function(o,field) {
+ try {
+ return o[field];
+ } catch( _g ) {
+ return null;
+ }
+};
+Reflect.fields = function(o) {
+ var a = [];
+ if(o != null) {
+ var hasOwnProperty = Object.prototype.hasOwnProperty;
+ for( var f in o ) {
+ if(f != "__id__" && f != "hx__closures__" && hasOwnProperty.call(o,f)) {
+ a.push(f);
+ }
+ }
+ }
+ return a;
+};
+Reflect.deleteField = function(o,field) {
+ if(!Object.prototype.hasOwnProperty.call(o,field)) {
+ return false;
+ }
+ delete(o[field]);
+ return true;
+};
+Reflect.copy = function(o) {
+ if(o == null) {
+ return null;
+ }
+ var o2 = { };
+ var _g = 0;
+ var _g1 = Reflect.fields(o);
+ while(_g < _g1.length) {
+ var f = _g1[_g];
+ ++_g;
+ o2[f] = Reflect.field(o,f);
+ }
+ return o2;
+};
+var Std = function() { };
+Std.__name__ = true;
+Std.string = function(s) {
+ return js_Boot.__string_rec(s,"");
+};
+Std.parseInt = function(x) {
+ if(x != null) {
+ var _g = 0;
+ var _g1 = x.length;
+ while(_g < _g1) {
+ var i = _g++;
+ var c = x.charCodeAt(i);
+ if(c <= 8 || c >= 14 && c != 32 && c != 45) {
+ var nc = x.charCodeAt(i + 1);
+ var v = parseInt(x,nc == 120 || nc == 88 ? 16 : 10);
+ if(isNaN(v)) {
+ return null;
+ } else {
+ return v;
+ }
+ }
+ }
+ }
+ return null;
+};
+var StringTools = function() { };
+StringTools.__name__ = true;
+StringTools.isSpace = function(s,pos) {
+ var c = HxOverrides.cca(s,pos);
+ if(!(c > 8 && c < 14)) {
+ return c == 32;
+ } else {
+ return true;
+ }
+};
+StringTools.ltrim = function(s) {
+ var l = s.length;
+ var r = 0;
+ while(r < l && StringTools.isSpace(s,r)) ++r;
+ if(r > 0) {
+ return HxOverrides.substr(s,r,l - r);
+ } else {
+ return s;
+ }
+};
+StringTools.rtrim = function(s) {
+ var l = s.length;
+ var r = 0;
+ while(r < l && StringTools.isSpace(s,l - r - 1)) ++r;
+ if(r > 0) {
+ return HxOverrides.substr(s,0,l - r);
+ } else {
+ return s;
+ }
+};
+StringTools.trim = function(s) {
+ return StringTools.ltrim(StringTools.rtrim(s));
+};
+var haxe_iterators_ArrayIterator = function(array) {
+ this.current = 0;
+ this.array = array;
+};
+haxe_iterators_ArrayIterator.__name__ = true;
+haxe_iterators_ArrayIterator.prototype = {
+ hasNext: function() {
+ return this.current < this.array.length;
+ }
+ ,next: function() {
+ return this.array[this.current++];
+ }
+};
+var js_Boot = function() { };
+js_Boot.__name__ = true;
+js_Boot.__string_rec = function(o,s) {
+ if(o == null) {
+ return "null";
+ }
+ if(s.length >= 5) {
+ return "<...>";
+ }
+ var t = typeof(o);
+ if(t == "function" && (o.__name__ || o.__ename__)) {
+ t = "object";
+ }
+ switch(t) {
+ case "function":
+ return "";
+ case "object":
+ if(((o) instanceof Array)) {
+ var str = "[";
+ s += "\t";
+ var _g = 0;
+ var _g1 = o.length;
+ while(_g < _g1) {
+ var i = _g++;
+ str += (i > 0 ? "," : "") + js_Boot.__string_rec(o[i],s);
+ }
+ str += "]";
+ return str;
+ }
+ var tostr;
+ try {
+ tostr = o.toString;
+ } catch( _g ) {
+ return "???";
+ }
+ if(tostr != null && tostr != Object.toString && typeof(tostr) == "function") {
+ var s2 = o.toString();
+ if(s2 != "[object Object]") {
+ return s2;
+ }
+ }
+ var str = "{\n";
+ s += "\t";
+ var hasp = o.hasOwnProperty != null;
+ var k = null;
+ for( k in o ) {
+ if(hasp && !o.hasOwnProperty(k)) {
+ continue;
+ }
+ if(k == "prototype" || k == "__class__" || k == "__super__" || k == "__interfaces__" || k == "__properties__") {
+ continue;
+ }
+ if(str.length != 2) {
+ str += ", \n";
+ }
+ str += s + k + " : " + js_Boot.__string_rec(o[k],s);
+ }
+ s = s.substring(1);
+ str += "\n" + s + "}";
+ return str;
+ case "string":
+ return o;
+ default:
+ return String(o);
+ }
+};
+var xrfragment_Filter = $hx_exports["xrfragment"]["Filter"] = function(str) {
+ this.q = { };
+ this.str = "";
+ if(str != null) {
+ this.parse(str);
+ }
+};
+xrfragment_Filter.__name__ = true;
+xrfragment_Filter.prototype = {
+ toObject: function() {
+ return Reflect.copy(this.q);
+ }
+ ,get: function() {
+ return Reflect.copy(this.q);
+ }
+ ,parse: function(str) {
+ var token = str.split(" ");
+ var q = { };
+ var process = function(str,prefix) {
+ if(prefix == null) {
+ prefix = "";
+ }
+ str = StringTools.trim(str);
+ var k = str.split("=")[0];
+ var v = str.split("=")[1];
+ var filter = { };
+ if(q[prefix + k]) {
+ filter = q[prefix + k];
+ }
+ if(xrfragment_XRF.isProp.match(str)) {
+ var oper = "";
+ if(str.indexOf(">") != -1) {
+ oper = ">";
+ }
+ if(str.indexOf("<") != -1) {
+ oper = "<";
+ }
+ if(xrfragment_XRF.isExclude.match(k)) {
+ k = HxOverrides.substr(k,1,null);
+ }
+ v = HxOverrides.substr(v,oper.length,null);
+ if(oper.length == 0) {
+ oper = "=";
+ }
+ var rule = { };
+ if(xrfragment_XRF.isNumber.match(v)) {
+ rule[oper] = parseFloat(v);
+ } else {
+ rule[oper] = v;
+ }
+ q["expr"] = rule;
+ }
+ var value = xrfragment_XRF.isDeep.match(str) ? k.split("*").length - 1 : 0;
+ q["deep"] = value;
+ var value = xrfragment_XRF.isExclude.match(str) ? false : true;
+ q["show"] = value;
+ var value = k.replace(xrfragment_XRF.operators.r,"");
+ q["key"] = value;
+ q["value"] = v;
+ };
+ var _g = 0;
+ var _g1 = token.length;
+ while(_g < _g1) {
+ var i = _g++;
+ process(token[i]);
+ }
+ return this.q = q;
+ }
+ ,test: function(obj) {
+ var qualify = false;
+ var _g = 0;
+ var _g1 = Reflect.fields(obj);
+ while(_g < _g1.length) {
+ var k = _g1[_g];
+ ++_g;
+ var v = Std.string(Reflect.field(obj,k));
+ if(this.testProperty(k,v)) {
+ qualify = true;
+ }
+ }
+ var _g = 0;
+ var _g1 = Reflect.fields(obj);
+ while(_g < _g1.length) {
+ var k = _g1[_g];
+ ++_g;
+ var v = Std.string(Reflect.field(obj,k));
+ if(this.testProperty(k,v,true)) {
+ qualify = false;
+ }
+ }
+ return qualify;
+ }
+ ,testProperty: function(property,value,exclude) {
+ var conds = 0;
+ var fails = 0;
+ var qualify = 0;
+ var testprop = function(expr) {
+ conds += 1;
+ fails += expr ? 0 : 1;
+ return expr;
+ };
+ if(this.q[value] != null) {
+ var v = this.q[value];
+ if(v[property] != null) {
+ return v[property];
+ }
+ }
+ if(Reflect.field(this.q,"expr")) {
+ var f = Reflect.field(this.q,"expr");
+ if(!Reflect.field(this.q,"show")) {
+ if(Reflect.field(f,"!=") != null && testprop((value == null ? "null" : "" + value) == Std.string(Reflect.field(f,"!="))) && exclude) {
+ ++qualify;
+ }
+ } else {
+ if(Reflect.field(f,"*") != null && testprop(parseFloat(value) != null)) {
+ ++qualify;
+ }
+ if(Reflect.field(f,">") != null && testprop(parseFloat(value) >= parseFloat(Reflect.field(f,">")))) {
+ ++qualify;
+ }
+ if(Reflect.field(f,"<") != null && testprop(parseFloat(value) <= parseFloat(Reflect.field(f,"<")))) {
+ ++qualify;
+ }
+ if(Reflect.field(f,"=") != null && (testprop(value == Reflect.field(f,"=")) || testprop(parseFloat(value) == parseFloat(Reflect.field(f,"="))))) {
+ ++qualify;
+ }
+ }
+ }
+ return qualify > 0;
+ }
+};
+var xrfragment_Parser = $hx_exports["xrfragment"]["Parser"] = function() { };
+xrfragment_Parser.__name__ = true;
+xrfragment_Parser.parse = function(key,value,store,index) {
+ var Frag_h = Object.create(null);
+ Frag_h["#"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_PREDEFINED_VIEW | xrfragment_XRF.PV_EXECUTE;
+ Frag_h["src"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_URL;
+ Frag_h["href"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_URL | xrfragment_XRF.T_PREDEFINED_VIEW;
+ Frag_h["tag"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["pos"] = xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_VECTOR3 | xrfragment_XRF.T_STRING | xrfragment_XRF.T_STRING_OBJ | xrfragment_XRF.METADATA | xrfragment_XRF.NAVIGATOR;
+ Frag_h["rot"] = xrfragment_XRF.QUERY_OPERATOR | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_VECTOR3 | xrfragment_XRF.METADATA | xrfragment_XRF.NAVIGATOR;
+ Frag_h["t"] = xrfragment_XRF.ASSET | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_FLOAT | xrfragment_XRF.T_VECTOR2 | xrfragment_XRF.T_STRING | xrfragment_XRF.NAVIGATOR | xrfragment_XRF.METADATA;
+ Frag_h["tv"] = xrfragment_XRF.ASSET | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_FLOAT | xrfragment_XRF.T_VECTOR2 | xrfragment_XRF.T_VECTOR3 | xrfragment_XRF.NAVIGATOR | xrfragment_XRF.METADATA;
+ Frag_h["namespace"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["SPDX"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["unit"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["description"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["session"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_URL | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.NAVIGATOR | xrfragment_XRF.METADATA | xrfragment_XRF.PROMPT;
+ var keyStripped = key.replace(xrfragment_XRF.operators.r,"");
+ var isPVDynamic = key.length > 0 && !Object.prototype.hasOwnProperty.call(Frag_h,key);
+ var isPVDefault = value.length == 0 && key.length > 0 && key == "#";
+ if(isPVDynamic) {
+ var v = new xrfragment_XRF(key,xrfragment_XRF.PV_EXECUTE | xrfragment_XRF.NAVIGATOR,index);
+ v.validate(value);
+ store[keyStripped] = v;
+ return true;
+ }
+ var v = new xrfragment_XRF(key,Frag_h[key],index);
+ if(Object.prototype.hasOwnProperty.call(Frag_h,key)) {
+ if(!v.validate(value)) {
+ console.log("src/xrfragment/Parser.hx:66:","⚠ fragment '" + key + "' has incompatible value (" + value + ")");
+ return false;
+ }
+ store[keyStripped] = v;
+ if(xrfragment_Parser.debug) {
+ console.log("src/xrfragment/Parser.hx:70:","✔ " + key + ": " + v.string);
+ }
+ } else {
+ if(typeof(value) == "string") {
+ v.guessType(v,value);
+ }
+ v.noXRF = true;
+ store[keyStripped] = v;
+ }
+ return true;
+};
+var xrfragment_URI = $hx_exports["xrfragment"]["URI"] = function() { };
+xrfragment_URI.__name__ = true;
+xrfragment_URI.parse = function(url,filter) {
+ var store = { };
+ if(url == null || url.indexOf("#") == -1) {
+ return store;
+ }
+ var fragment = url.split("#");
+ var splitArray = fragment[1].split("&");
+ var _g = 0;
+ var _g1 = splitArray.length;
+ while(_g < _g1) {
+ var i = _g++;
+ var splitByEqual = splitArray[i].split("=");
+ var regexPlus = new EReg("\\+","g");
+ var key = splitByEqual[0];
+ var value = "";
+ if(splitByEqual.length > 1) {
+ var s = regexPlus.split(splitByEqual[1]).join(" ");
+ value = decodeURIComponent(s.split("+").join(" "));
+ }
+ var ok = xrfragment_Parser.parse(key,value,store,i);
+ }
+ if(filter != null && filter != 0) {
+ var _g = 0;
+ var _g1 = Reflect.fields(store);
+ while(_g < _g1.length) {
+ var key = _g1[_g];
+ ++_g;
+ var xrf = store[key];
+ if(!xrf.is(filter)) {
+ Reflect.deleteField(store,key);
+ }
+ }
+ }
+ return store;
+};
+var xrfragment_XRF = $hx_exports["xrfragment"]["XRF"] = function(_fragment,_flags,_index) {
+ this.fragment = _fragment;
+ this.flags = _flags;
+ this.index = _index;
+};
+xrfragment_XRF.__name__ = true;
+xrfragment_XRF.set = function(flag,flags) {
+ return flags | flag;
+};
+xrfragment_XRF.unset = function(flag,flags) {
+ return flags & ~flag;
+};
+xrfragment_XRF.prototype = {
+ is: function(flag) {
+ var v = this.flags;
+ if(!(typeof(v) == "number" && ((v | 0) === v))) {
+ this.flags = 0;
+ }
+ return (this.flags & flag) != 0;
+ }
+ ,validate: function(value) {
+ this.guessType(this,value);
+ var ok = true;
+ if(!this.is(xrfragment_XRF.T_FLOAT) && this.is(xrfragment_XRF.T_VECTOR2) && !(typeof(this.x) == "number" && typeof(this.y) == "number")) {
+ ok = false;
+ }
+ if(!(this.is(xrfragment_XRF.T_VECTOR2) || this.is(xrfragment_XRF.T_STRING)) && this.is(xrfragment_XRF.T_VECTOR3) && !(typeof(this.x) == "number" && typeof(this.y) == "number" && typeof(this.z) == "number")) {
+ ok = false;
+ }
+ return ok;
+ }
+ ,guessType: function(v,str) {
+ v.string = str;
+ if(typeof(str) != "string") {
+ return;
+ }
+ if(str.length > 0) {
+ if(str.split(",").length > 1) {
+ var xyzw = str.split(",");
+ if(xyzw.length > 0) {
+ v.x = parseFloat(xyzw[0]);
+ }
+ if(xyzw.length > 1) {
+ v.y = parseFloat(xyzw[1]);
+ }
+ if(xyzw.length > 2) {
+ v.z = parseFloat(xyzw[2]);
+ }
+ if(xyzw.length > 3) {
+ v.w = parseFloat(xyzw[3]);
+ }
+ }
+ if(xrfragment_XRF.isColor.match(str)) {
+ v.color = str;
+ }
+ if(xrfragment_XRF.isFloat.match(str)) {
+ v.x = parseFloat(str);
+ v.float = v.x;
+ }
+ if(xrfragment_XRF.isInt.match(str)) {
+ v.int = Std.parseInt(str);
+ v.x = v.int;
+ }
+ v.filter = new xrfragment_Filter(v.fragment + "=" + v.string);
+ } else {
+ v.filter = new xrfragment_Filter(v.fragment);
+ }
+ }
+};
+if(typeof(performance) != "undefined" ? typeof(performance.now) == "function" : false) {
+ HxOverrides.now = performance.now.bind(performance);
+}
+String.__name__ = true;
+Array.__name__ = true;
+js_Boot.__toStr = ({ }).toString;
+xrfragment_Parser.error = "";
+xrfragment_Parser.debug = false;
+xrfragment_XRF.ASSET = 1;
+xrfragment_XRF.PROP_BIND = 2;
+xrfragment_XRF.QUERY_OPERATOR = 4;
+xrfragment_XRF.PROMPT = 8;
+xrfragment_XRF.ROUNDROBIN = 16;
+xrfragment_XRF.NAVIGATOR = 32;
+xrfragment_XRF.METADATA = 64;
+xrfragment_XRF.PV_OVERRIDE = 128;
+xrfragment_XRF.PV_EXECUTE = 256;
+xrfragment_XRF.T_COLOR = 8192;
+xrfragment_XRF.T_INT = 16384;
+xrfragment_XRF.T_FLOAT = 32768;
+xrfragment_XRF.T_VECTOR2 = 65536;
+xrfragment_XRF.T_VECTOR3 = 131072;
+xrfragment_XRF.T_URL = 262144;
+xrfragment_XRF.T_PREDEFINED_VIEW = 524288;
+xrfragment_XRF.T_STRING = 1048576;
+xrfragment_XRF.T_STRING_OBJ = 2097152;
+xrfragment_XRF.T_STRING_OBJ_PROP = 4194304;
+xrfragment_XRF.isColor = new EReg("^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$","");
+xrfragment_XRF.isInt = new EReg("^[-0-9]+$","");
+xrfragment_XRF.isFloat = new EReg("^[-0-9]+\\.[0-9]+$","");
+xrfragment_XRF.isVector = new EReg("([,]+|\\w)","");
+xrfragment_XRF.isUrl = new EReg("(://)?\\..*","");
+xrfragment_XRF.isUrlOrPretypedView = new EReg("(^#|://)?\\..*","");
+xrfragment_XRF.isString = new EReg(".*","");
+xrfragment_XRF.operators = new EReg("(^-|[\\*]+)","");
+xrfragment_XRF.isProp = new EReg("^.*=[><=]?","");
+xrfragment_XRF.isExclude = new EReg("^-","");
+xrfragment_XRF.isDeep = new EReg("\\*","");
+xrfragment_XRF.isNumber = new EReg("^[0-9\\.]+$","");
+})({});
+var xrfragment = $hx_exports["xrfragment"];
+export default xrfragment;
+var $hx_exports = typeof exports != "undefined" ? exports : typeof window != "undefined" ? window : typeof self != "undefined" ? self : this;
+(function ($global) { "use strict";
+$hx_exports["xrfragment"] = $hx_exports["xrfragment"] || {};
+var EReg = function(r,opt) {
+ this.r = new RegExp(r,opt.split("u").join(""));
+};
+EReg.__name__ = true;
+EReg.prototype = {
+ match: function(s) {
+ if(this.r.global) {
+ this.r.lastIndex = 0;
+ }
+ this.r.m = this.r.exec(s);
+ this.r.s = s;
+ return this.r.m != null;
+ }
+ ,split: function(s) {
+ var d = "#__delim__#";
+ return s.replace(this.r,d).split(d);
+ }
+};
+var HxOverrides = function() { };
+HxOverrides.__name__ = true;
+HxOverrides.cca = function(s,index) {
+ var x = s.charCodeAt(index);
+ if(x != x) {
+ return undefined;
+ }
+ return x;
+};
+HxOverrides.substr = function(s,pos,len) {
+ if(len == null) {
+ len = s.length;
+ } else if(len < 0) {
+ if(pos == 0) {
+ len = s.length + len;
+ } else {
+ return "";
+ }
+ }
+ return s.substr(pos,len);
+};
+HxOverrides.now = function() {
+ return Date.now();
+};
+Math.__name__ = true;
+var Reflect = function() { };
+Reflect.__name__ = true;
+Reflect.field = function(o,field) {
+ try {
+ return o[field];
+ } catch( _g ) {
+ return null;
+ }
+};
+Reflect.fields = function(o) {
+ var a = [];
+ if(o != null) {
+ var hasOwnProperty = Object.prototype.hasOwnProperty;
+ for( var f in o ) {
+ if(f != "__id__" && f != "hx__closures__" && hasOwnProperty.call(o,f)) {
+ a.push(f);
+ }
+ }
+ }
+ return a;
+};
+Reflect.deleteField = function(o,field) {
+ if(!Object.prototype.hasOwnProperty.call(o,field)) {
+ return false;
+ }
+ delete(o[field]);
+ return true;
+};
+Reflect.copy = function(o) {
+ if(o == null) {
+ return null;
+ }
+ var o2 = { };
+ var _g = 0;
+ var _g1 = Reflect.fields(o);
+ while(_g < _g1.length) {
+ var f = _g1[_g];
+ ++_g;
+ o2[f] = Reflect.field(o,f);
+ }
+ return o2;
+};
+var Std = function() { };
+Std.__name__ = true;
+Std.string = function(s) {
+ return js_Boot.__string_rec(s,"");
+};
+Std.parseInt = function(x) {
+ if(x != null) {
+ var _g = 0;
+ var _g1 = x.length;
+ while(_g < _g1) {
+ var i = _g++;
+ var c = x.charCodeAt(i);
+ if(c <= 8 || c >= 14 && c != 32 && c != 45) {
+ var nc = x.charCodeAt(i + 1);
+ var v = parseInt(x,nc == 120 || nc == 88 ? 16 : 10);
+ if(isNaN(v)) {
+ return null;
+ } else {
+ return v;
+ }
+ }
+ }
+ }
+ return null;
+};
+var StringTools = function() { };
+StringTools.__name__ = true;
+StringTools.isSpace = function(s,pos) {
+ var c = HxOverrides.cca(s,pos);
+ if(!(c > 8 && c < 14)) {
+ return c == 32;
+ } else {
+ return true;
+ }
+};
+StringTools.ltrim = function(s) {
+ var l = s.length;
+ var r = 0;
+ while(r < l && StringTools.isSpace(s,r)) ++r;
+ if(r > 0) {
+ return HxOverrides.substr(s,r,l - r);
+ } else {
+ return s;
+ }
+};
+StringTools.rtrim = function(s) {
+ var l = s.length;
+ var r = 0;
+ while(r < l && StringTools.isSpace(s,l - r - 1)) ++r;
+ if(r > 0) {
+ return HxOverrides.substr(s,0,l - r);
+ } else {
+ return s;
+ }
+};
+StringTools.trim = function(s) {
+ return StringTools.ltrim(StringTools.rtrim(s));
+};
+var haxe_iterators_ArrayIterator = function(array) {
+ this.current = 0;
+ this.array = array;
+};
+haxe_iterators_ArrayIterator.__name__ = true;
+haxe_iterators_ArrayIterator.prototype = {
+ hasNext: function() {
+ return this.current < this.array.length;
+ }
+ ,next: function() {
+ return this.array[this.current++];
+ }
+};
+var js_Boot = function() { };
+js_Boot.__name__ = true;
+js_Boot.__string_rec = function(o,s) {
+ if(o == null) {
+ return "null";
+ }
+ if(s.length >= 5) {
+ return "<...>";
+ }
+ var t = typeof(o);
+ if(t == "function" && (o.__name__ || o.__ename__)) {
+ t = "object";
+ }
+ switch(t) {
+ case "function":
+ return "";
+ case "object":
+ if(((o) instanceof Array)) {
+ var str = "[";
+ s += "\t";
+ var _g = 0;
+ var _g1 = o.length;
+ while(_g < _g1) {
+ var i = _g++;
+ str += (i > 0 ? "," : "") + js_Boot.__string_rec(o[i],s);
+ }
+ str += "]";
+ return str;
+ }
+ var tostr;
+ try {
+ tostr = o.toString;
+ } catch( _g ) {
+ return "???";
+ }
+ if(tostr != null && tostr != Object.toString && typeof(tostr) == "function") {
+ var s2 = o.toString();
+ if(s2 != "[object Object]") {
+ return s2;
+ }
+ }
+ var str = "{\n";
+ s += "\t";
+ var hasp = o.hasOwnProperty != null;
+ var k = null;
+ for( k in o ) {
+ if(hasp && !o.hasOwnProperty(k)) {
+ continue;
+ }
+ if(k == "prototype" || k == "__class__" || k == "__super__" || k == "__interfaces__" || k == "__properties__") {
+ continue;
+ }
+ if(str.length != 2) {
+ str += ", \n";
+ }
+ str += s + k + " : " + js_Boot.__string_rec(o[k],s);
+ }
+ s = s.substring(1);
+ str += "\n" + s + "}";
+ return str;
+ case "string":
+ return o;
+ default:
+ return String(o);
+ }
+};
+var xrfragment_Filter = $hx_exports["xrfragment"]["Filter"] = function(str) {
+ this.q = { };
+ this.str = "";
+ if(str != null) {
+ this.parse(str);
+ }
+};
+xrfragment_Filter.__name__ = true;
+xrfragment_Filter.prototype = {
+ toObject: function() {
+ return Reflect.copy(this.q);
+ }
+ ,get: function() {
+ return Reflect.copy(this.q);
+ }
+ ,parse: function(str) {
+ var token = str.split(" ");
+ var q = { };
+ var process = function(str,prefix) {
+ if(prefix == null) {
+ prefix = "";
+ }
+ str = StringTools.trim(str);
+ var k = str.split("=")[0];
+ var v = str.split("=")[1];
+ var filter = { };
+ if(q[prefix + k]) {
+ filter = q[prefix + k];
+ }
+ if(xrfragment_XRF.isProp.match(str)) {
+ var oper = "";
+ if(str.indexOf(">") != -1) {
+ oper = ">";
+ }
+ if(str.indexOf("<") != -1) {
+ oper = "<";
+ }
+ if(xrfragment_XRF.isExclude.match(k)) {
+ k = HxOverrides.substr(k,1,null);
+ }
+ v = HxOverrides.substr(v,oper.length,null);
+ if(oper.length == 0) {
+ oper = "=";
+ }
+ var rule = { };
+ if(xrfragment_XRF.isNumber.match(v)) {
+ rule[oper] = parseFloat(v);
+ } else {
+ rule[oper] = v;
+ }
+ q["expr"] = rule;
+ }
+ var value = xrfragment_XRF.isDeep.match(str) ? k.split("*").length - 1 : 0;
+ q["deep"] = value;
+ var value = xrfragment_XRF.isExclude.match(str) ? false : true;
+ q["show"] = value;
+ var value = k.replace(xrfragment_XRF.operators.r,"");
+ q["key"] = value;
+ q["value"] = v;
+ };
+ var _g = 0;
+ var _g1 = token.length;
+ while(_g < _g1) {
+ var i = _g++;
+ process(token[i]);
+ }
+ return this.q = q;
+ }
+ ,test: function(obj) {
+ var qualify = false;
+ var _g = 0;
+ var _g1 = Reflect.fields(obj);
+ while(_g < _g1.length) {
+ var k = _g1[_g];
+ ++_g;
+ var v = Std.string(Reflect.field(obj,k));
+ if(this.testProperty(k,v)) {
+ qualify = true;
+ }
+ }
+ var _g = 0;
+ var _g1 = Reflect.fields(obj);
+ while(_g < _g1.length) {
+ var k = _g1[_g];
+ ++_g;
+ var v = Std.string(Reflect.field(obj,k));
+ if(this.testProperty(k,v,true)) {
+ qualify = false;
+ }
+ }
+ return qualify;
+ }
+ ,testProperty: function(property,value,exclude) {
+ var conds = 0;
+ var fails = 0;
+ var qualify = 0;
+ var testprop = function(expr) {
+ conds += 1;
+ fails += expr ? 0 : 1;
+ return expr;
+ };
+ if(this.q[value] != null) {
+ var v = this.q[value];
+ if(v[property] != null) {
+ return v[property];
+ }
+ }
+ if(Reflect.field(this.q,"expr")) {
+ var f = Reflect.field(this.q,"expr");
+ if(!Reflect.field(this.q,"show")) {
+ if(Reflect.field(f,"!=") != null && testprop((value == null ? "null" : "" + value) == Std.string(Reflect.field(f,"!="))) && exclude) {
+ ++qualify;
+ }
+ } else {
+ if(Reflect.field(f,"*") != null && testprop(parseFloat(value) != null)) {
+ ++qualify;
+ }
+ if(Reflect.field(f,">") != null && testprop(parseFloat(value) >= parseFloat(Reflect.field(f,">")))) {
+ ++qualify;
+ }
+ if(Reflect.field(f,"<") != null && testprop(parseFloat(value) <= parseFloat(Reflect.field(f,"<")))) {
+ ++qualify;
+ }
+ if(Reflect.field(f,"=") != null && (testprop(value == Reflect.field(f,"=")) || testprop(parseFloat(value) == parseFloat(Reflect.field(f,"="))))) {
+ ++qualify;
+ }
+ }
+ }
+ return qualify > 0;
+ }
+};
+var xrfragment_Parser = $hx_exports["xrfragment"]["Parser"] = function() { };
+xrfragment_Parser.__name__ = true;
+xrfragment_Parser.parse = function(key,value,store,index) {
+ var Frag_h = Object.create(null);
+ Frag_h["#"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_PREDEFINED_VIEW | xrfragment_XRF.PV_EXECUTE;
+ Frag_h["src"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_URL;
+ Frag_h["href"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_URL | xrfragment_XRF.T_PREDEFINED_VIEW;
+ Frag_h["tag"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["pos"] = xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_VECTOR3 | xrfragment_XRF.T_STRING | xrfragment_XRF.T_STRING_OBJ | xrfragment_XRF.METADATA | xrfragment_XRF.NAVIGATOR;
+ Frag_h["rot"] = xrfragment_XRF.QUERY_OPERATOR | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_VECTOR3 | xrfragment_XRF.METADATA | xrfragment_XRF.NAVIGATOR;
+ Frag_h["t"] = xrfragment_XRF.ASSET | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_FLOAT | xrfragment_XRF.T_VECTOR2 | xrfragment_XRF.T_STRING | xrfragment_XRF.NAVIGATOR | xrfragment_XRF.METADATA;
+ Frag_h["tv"] = xrfragment_XRF.ASSET | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_FLOAT | xrfragment_XRF.T_VECTOR2 | xrfragment_XRF.T_VECTOR3 | xrfragment_XRF.NAVIGATOR | xrfragment_XRF.METADATA;
+ Frag_h["namespace"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["SPDX"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["unit"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["description"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["session"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_URL | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.NAVIGATOR | xrfragment_XRF.METADATA | xrfragment_XRF.PROMPT;
+ var keyStripped = key.replace(xrfragment_XRF.operators.r,"");
+ var isPVDynamic = key.length > 0 && !Object.prototype.hasOwnProperty.call(Frag_h,key);
+ var isPVDefault = value.length == 0 && key.length > 0 && key == "#";
+ if(isPVDynamic) {
+ var v = new xrfragment_XRF(key,xrfragment_XRF.PV_EXECUTE | xrfragment_XRF.NAVIGATOR,index);
+ v.validate(value);
+ store[keyStripped] = v;
+ return true;
+ }
+ var v = new xrfragment_XRF(key,Frag_h[key],index);
+ if(Object.prototype.hasOwnProperty.call(Frag_h,key)) {
+ if(!v.validate(value)) {
+ console.log("src/xrfragment/Parser.hx:66:","⚠ fragment '" + key + "' has incompatible value (" + value + ")");
+ return false;
+ }
+ store[keyStripped] = v;
+ if(xrfragment_Parser.debug) {
+ console.log("src/xrfragment/Parser.hx:70:","✔ " + key + ": " + v.string);
+ }
+ } else {
+ if(typeof(value) == "string") {
+ v.guessType(v,value);
+ }
+ v.noXRF = true;
+ store[keyStripped] = v;
+ }
+ return true;
+};
+var xrfragment_URI = $hx_exports["xrfragment"]["URI"] = function() { };
+xrfragment_URI.__name__ = true;
+xrfragment_URI.parse = function(url,filter) {
+ var store = { };
+ if(url == null || url.indexOf("#") == -1) {
+ return store;
+ }
+ var fragment = url.split("#");
+ var splitArray = fragment[1].split("&");
+ var _g = 0;
+ var _g1 = splitArray.length;
+ while(_g < _g1) {
+ var i = _g++;
+ var splitByEqual = splitArray[i].split("=");
+ var regexPlus = new EReg("\\+","g");
+ var key = splitByEqual[0];
+ var value = "";
+ if(splitByEqual.length > 1) {
+ var s = regexPlus.split(splitByEqual[1]).join(" ");
+ value = decodeURIComponent(s.split("+").join(" "));
+ }
+ var ok = xrfragment_Parser.parse(key,value,store,i);
+ }
+ if(filter != null && filter != 0) {
+ var _g = 0;
+ var _g1 = Reflect.fields(store);
+ while(_g < _g1.length) {
+ var key = _g1[_g];
+ ++_g;
+ var xrf = store[key];
+ if(!xrf.is(filter)) {
+ Reflect.deleteField(store,key);
+ }
+ }
+ }
+ return store;
+};
+var xrfragment_XRF = $hx_exports["xrfragment"]["XRF"] = function(_fragment,_flags,_index) {
+ this.fragment = _fragment;
+ this.flags = _flags;
+ this.index = _index;
+};
+xrfragment_XRF.__name__ = true;
+xrfragment_XRF.set = function(flag,flags) {
+ return flags | flag;
+};
+xrfragment_XRF.unset = function(flag,flags) {
+ return flags & ~flag;
+};
+xrfragment_XRF.prototype = {
+ is: function(flag) {
+ var v = this.flags;
+ if(!(typeof(v) == "number" && ((v | 0) === v))) {
+ this.flags = 0;
+ }
+ return (this.flags & flag) != 0;
+ }
+ ,validate: function(value) {
+ this.guessType(this,value);
+ var ok = true;
+ if(!this.is(xrfragment_XRF.T_FLOAT) && this.is(xrfragment_XRF.T_VECTOR2) && !(typeof(this.x) == "number" && typeof(this.y) == "number")) {
+ ok = false;
+ }
+ if(!(this.is(xrfragment_XRF.T_VECTOR2) || this.is(xrfragment_XRF.T_STRING)) && this.is(xrfragment_XRF.T_VECTOR3) && !(typeof(this.x) == "number" && typeof(this.y) == "number" && typeof(this.z) == "number")) {
+ ok = false;
+ }
+ return ok;
+ }
+ ,guessType: function(v,str) {
+ v.string = str;
+ if(typeof(str) != "string") {
+ return;
+ }
+ if(str.length > 0) {
+ if(str.split(",").length > 1) {
+ var xyzw = str.split(",");
+ if(xyzw.length > 0) {
+ v.x = parseFloat(xyzw[0]);
+ }
+ if(xyzw.length > 1) {
+ v.y = parseFloat(xyzw[1]);
+ }
+ if(xyzw.length > 2) {
+ v.z = parseFloat(xyzw[2]);
+ }
+ if(xyzw.length > 3) {
+ v.w = parseFloat(xyzw[3]);
+ }
+ }
+ if(xrfragment_XRF.isColor.match(str)) {
+ v.color = str;
+ }
+ if(xrfragment_XRF.isFloat.match(str)) {
+ v.x = parseFloat(str);
+ v.float = v.x;
+ }
+ if(xrfragment_XRF.isInt.match(str)) {
+ v.int = Std.parseInt(str);
+ v.x = v.int;
+ }
+ v.filter = new xrfragment_Filter(v.fragment + "=" + v.string);
+ } else {
+ v.filter = new xrfragment_Filter(v.fragment);
+ }
+ }
+};
+if(typeof(performance) != "undefined" ? typeof(performance.now) == "function" : false) {
+ HxOverrides.now = performance.now.bind(performance);
+}
+String.__name__ = true;
+Array.__name__ = true;
+js_Boot.__toStr = ({ }).toString;
+xrfragment_Parser.error = "";
+xrfragment_Parser.debug = false;
+xrfragment_XRF.ASSET = 1;
+xrfragment_XRF.PROP_BIND = 2;
+xrfragment_XRF.QUERY_OPERATOR = 4;
+xrfragment_XRF.PROMPT = 8;
+xrfragment_XRF.ROUNDROBIN = 16;
+xrfragment_XRF.NAVIGATOR = 32;
+xrfragment_XRF.METADATA = 64;
+xrfragment_XRF.PV_OVERRIDE = 128;
+xrfragment_XRF.PV_EXECUTE = 256;
+xrfragment_XRF.T_COLOR = 8192;
+xrfragment_XRF.T_INT = 16384;
+xrfragment_XRF.T_FLOAT = 32768;
+xrfragment_XRF.T_VECTOR2 = 65536;
+xrfragment_XRF.T_VECTOR3 = 131072;
+xrfragment_XRF.T_URL = 262144;
+xrfragment_XRF.T_PREDEFINED_VIEW = 524288;
+xrfragment_XRF.T_STRING = 1048576;
+xrfragment_XRF.T_STRING_OBJ = 2097152;
+xrfragment_XRF.T_STRING_OBJ_PROP = 4194304;
+xrfragment_XRF.isColor = new EReg("^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$","");
+xrfragment_XRF.isInt = new EReg("^[-0-9]+$","");
+xrfragment_XRF.isFloat = new EReg("^[-0-9]+\\.[0-9]+$","");
+xrfragment_XRF.isVector = new EReg("([,]+|\\w)","");
+xrfragment_XRF.isUrl = new EReg("(://)?\\..*","");
+xrfragment_XRF.isUrlOrPretypedView = new EReg("(^#|://)?\\..*","");
+xrfragment_XRF.isString = new EReg(".*","");
+xrfragment_XRF.operators = new EReg("(^-|[\\*]+)","");
+xrfragment_XRF.isProp = new EReg("^.*=[><=]?","");
+xrfragment_XRF.isExclude = new EReg("^-","");
+xrfragment_XRF.isDeep = new EReg("\\*","");
+xrfragment_XRF.isNumber = new EReg("^[0-9\\.]+$","");
+})({});
+var xrfragment = $hx_exports["xrfragment"];
+export default xrfragment;
+var $hx_exports = typeof exports != "undefined" ? exports : typeof window != "undefined" ? window : typeof self != "undefined" ? self : this;
+(function ($global) { "use strict";
+$hx_exports["xrfragment"] = $hx_exports["xrfragment"] || {};
+var EReg = function(r,opt) {
+ this.r = new RegExp(r,opt.split("u").join(""));
+};
+EReg.__name__ = true;
+EReg.prototype = {
+ match: function(s) {
+ if(this.r.global) {
+ this.r.lastIndex = 0;
+ }
+ this.r.m = this.r.exec(s);
+ this.r.s = s;
+ return this.r.m != null;
+ }
+ ,split: function(s) {
+ var d = "#__delim__#";
+ return s.replace(this.r,d).split(d);
+ }
+};
+var HxOverrides = function() { };
+HxOverrides.__name__ = true;
+HxOverrides.cca = function(s,index) {
+ var x = s.charCodeAt(index);
+ if(x != x) {
+ return undefined;
+ }
+ return x;
+};
+HxOverrides.substr = function(s,pos,len) {
+ if(len == null) {
+ len = s.length;
+ } else if(len < 0) {
+ if(pos == 0) {
+ len = s.length + len;
+ } else {
+ return "";
+ }
+ }
+ return s.substr(pos,len);
+};
+HxOverrides.now = function() {
+ return Date.now();
+};
+Math.__name__ = true;
+var Reflect = function() { };
+Reflect.__name__ = true;
+Reflect.field = function(o,field) {
+ try {
+ return o[field];
+ } catch( _g ) {
+ return null;
+ }
+};
+Reflect.fields = function(o) {
+ var a = [];
+ if(o != null) {
+ var hasOwnProperty = Object.prototype.hasOwnProperty;
+ for( var f in o ) {
+ if(f != "__id__" && f != "hx__closures__" && hasOwnProperty.call(o,f)) {
+ a.push(f);
+ }
+ }
+ }
+ return a;
+};
+Reflect.deleteField = function(o,field) {
+ if(!Object.prototype.hasOwnProperty.call(o,field)) {
+ return false;
+ }
+ delete(o[field]);
+ return true;
+};
+Reflect.copy = function(o) {
+ if(o == null) {
+ return null;
+ }
+ var o2 = { };
+ var _g = 0;
+ var _g1 = Reflect.fields(o);
+ while(_g < _g1.length) {
+ var f = _g1[_g];
+ ++_g;
+ o2[f] = Reflect.field(o,f);
+ }
+ return o2;
+};
+var Std = function() { };
+Std.__name__ = true;
+Std.string = function(s) {
+ return js_Boot.__string_rec(s,"");
+};
+Std.parseInt = function(x) {
+ if(x != null) {
+ var _g = 0;
+ var _g1 = x.length;
+ while(_g < _g1) {
+ var i = _g++;
+ var c = x.charCodeAt(i);
+ if(c <= 8 || c >= 14 && c != 32 && c != 45) {
+ var nc = x.charCodeAt(i + 1);
+ var v = parseInt(x,nc == 120 || nc == 88 ? 16 : 10);
+ if(isNaN(v)) {
+ return null;
+ } else {
+ return v;
+ }
+ }
+ }
+ }
+ return null;
+};
+var StringTools = function() { };
+StringTools.__name__ = true;
+StringTools.isSpace = function(s,pos) {
+ var c = HxOverrides.cca(s,pos);
+ if(!(c > 8 && c < 14)) {
+ return c == 32;
+ } else {
+ return true;
+ }
+};
+StringTools.ltrim = function(s) {
+ var l = s.length;
+ var r = 0;
+ while(r < l && StringTools.isSpace(s,r)) ++r;
+ if(r > 0) {
+ return HxOverrides.substr(s,r,l - r);
+ } else {
+ return s;
+ }
+};
+StringTools.rtrim = function(s) {
+ var l = s.length;
+ var r = 0;
+ while(r < l && StringTools.isSpace(s,l - r - 1)) ++r;
+ if(r > 0) {
+ return HxOverrides.substr(s,0,l - r);
+ } else {
+ return s;
+ }
+};
+StringTools.trim = function(s) {
+ return StringTools.ltrim(StringTools.rtrim(s));
+};
+var haxe_iterators_ArrayIterator = function(array) {
+ this.current = 0;
+ this.array = array;
+};
+haxe_iterators_ArrayIterator.__name__ = true;
+haxe_iterators_ArrayIterator.prototype = {
+ hasNext: function() {
+ return this.current < this.array.length;
+ }
+ ,next: function() {
+ return this.array[this.current++];
+ }
+};
+var js_Boot = function() { };
+js_Boot.__name__ = true;
+js_Boot.__string_rec = function(o,s) {
+ if(o == null) {
+ return "null";
+ }
+ if(s.length >= 5) {
+ return "<...>";
+ }
+ var t = typeof(o);
+ if(t == "function" && (o.__name__ || o.__ename__)) {
+ t = "object";
+ }
+ switch(t) {
+ case "function":
+ return "";
+ case "object":
+ if(((o) instanceof Array)) {
+ var str = "[";
+ s += "\t";
+ var _g = 0;
+ var _g1 = o.length;
+ while(_g < _g1) {
+ var i = _g++;
+ str += (i > 0 ? "," : "") + js_Boot.__string_rec(o[i],s);
+ }
+ str += "]";
+ return str;
+ }
+ var tostr;
+ try {
+ tostr = o.toString;
+ } catch( _g ) {
+ return "???";
+ }
+ if(tostr != null && tostr != Object.toString && typeof(tostr) == "function") {
+ var s2 = o.toString();
+ if(s2 != "[object Object]") {
+ return s2;
+ }
+ }
+ var str = "{\n";
+ s += "\t";
+ var hasp = o.hasOwnProperty != null;
+ var k = null;
+ for( k in o ) {
+ if(hasp && !o.hasOwnProperty(k)) {
+ continue;
+ }
+ if(k == "prototype" || k == "__class__" || k == "__super__" || k == "__interfaces__" || k == "__properties__") {
+ continue;
+ }
+ if(str.length != 2) {
+ str += ", \n";
+ }
+ str += s + k + " : " + js_Boot.__string_rec(o[k],s);
+ }
+ s = s.substring(1);
+ str += "\n" + s + "}";
+ return str;
+ case "string":
+ return o;
+ default:
+ return String(o);
+ }
+};
+var xrfragment_Filter = $hx_exports["xrfragment"]["Filter"] = function(str) {
+ this.q = { };
+ this.str = "";
+ if(str != null) {
+ this.parse(str);
+ }
+};
+xrfragment_Filter.__name__ = true;
+xrfragment_Filter.prototype = {
+ toObject: function() {
+ return Reflect.copy(this.q);
+ }
+ ,get: function() {
+ return Reflect.copy(this.q);
+ }
+ ,parse: function(str) {
+ var token = str.split(" ");
+ var q = { };
+ var process = function(str,prefix) {
+ if(prefix == null) {
+ prefix = "";
+ }
+ str = StringTools.trim(str);
+ var k = str.split("=")[0];
+ var v = str.split("=")[1];
+ var filter = { };
+ if(q[prefix + k]) {
+ filter = q[prefix + k];
+ }
+ if(xrfragment_XRF.isProp.match(str)) {
+ var oper = "";
+ if(str.indexOf(">") != -1) {
+ oper = ">";
+ }
+ if(str.indexOf("<") != -1) {
+ oper = "<";
+ }
+ if(xrfragment_XRF.isExclude.match(k)) {
+ k = HxOverrides.substr(k,1,null);
+ }
+ v = HxOverrides.substr(v,oper.length,null);
+ if(oper.length == 0) {
+ oper = "=";
+ }
+ var rule = { };
+ if(xrfragment_XRF.isNumber.match(v)) {
+ rule[oper] = parseFloat(v);
+ } else {
+ rule[oper] = v;
+ }
+ q["expr"] = rule;
+ }
+ var value = xrfragment_XRF.isDeep.match(str) ? k.split("*").length - 1 : 0;
+ q["deep"] = value;
+ var value = xrfragment_XRF.isExclude.match(str) ? false : true;
+ q["show"] = value;
+ var value = k.replace(xrfragment_XRF.operators.r,"");
+ q["key"] = value;
+ q["value"] = v;
+ };
+ var _g = 0;
+ var _g1 = token.length;
+ while(_g < _g1) {
+ var i = _g++;
+ process(token[i]);
+ }
+ return this.q = q;
+ }
+ ,test: function(obj) {
+ var qualify = false;
+ var _g = 0;
+ var _g1 = Reflect.fields(obj);
+ while(_g < _g1.length) {
+ var k = _g1[_g];
+ ++_g;
+ var v = Std.string(Reflect.field(obj,k));
+ if(this.testProperty(k,v)) {
+ qualify = true;
+ }
+ }
+ var _g = 0;
+ var _g1 = Reflect.fields(obj);
+ while(_g < _g1.length) {
+ var k = _g1[_g];
+ ++_g;
+ var v = Std.string(Reflect.field(obj,k));
+ if(this.testProperty(k,v,true)) {
+ qualify = false;
+ }
+ }
+ return qualify;
+ }
+ ,testProperty: function(property,value,exclude) {
+ var conds = 0;
+ var fails = 0;
+ var qualify = 0;
+ var testprop = function(expr) {
+ conds += 1;
+ fails += expr ? 0 : 1;
+ return expr;
+ };
+ if(this.q[value] != null) {
+ var v = this.q[value];
+ if(v[property] != null) {
+ return v[property];
+ }
+ }
+ if(Reflect.field(this.q,"expr")) {
+ var f = Reflect.field(this.q,"expr");
+ if(!Reflect.field(this.q,"show")) {
+ if(Reflect.field(f,"!=") != null && testprop((value == null ? "null" : "" + value) == Std.string(Reflect.field(f,"!="))) && exclude) {
+ ++qualify;
+ }
+ } else {
+ if(Reflect.field(f,"*") != null && testprop(parseFloat(value) != null)) {
+ ++qualify;
+ }
+ if(Reflect.field(f,">") != null && testprop(parseFloat(value) >= parseFloat(Reflect.field(f,">")))) {
+ ++qualify;
+ }
+ if(Reflect.field(f,"<") != null && testprop(parseFloat(value) <= parseFloat(Reflect.field(f,"<")))) {
+ ++qualify;
+ }
+ if(Reflect.field(f,"=") != null && (testprop(value == Reflect.field(f,"=")) || testprop(parseFloat(value) == parseFloat(Reflect.field(f,"="))))) {
+ ++qualify;
+ }
+ }
+ }
+ return qualify > 0;
+ }
+};
+var xrfragment_Parser = $hx_exports["xrfragment"]["Parser"] = function() { };
+xrfragment_Parser.__name__ = true;
+xrfragment_Parser.parse = function(key,value,store,index) {
+ var Frag_h = Object.create(null);
+ Frag_h["#"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_PREDEFINED_VIEW | xrfragment_XRF.PV_EXECUTE;
+ Frag_h["src"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_URL;
+ Frag_h["href"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_URL | xrfragment_XRF.T_PREDEFINED_VIEW;
+ Frag_h["tag"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["pos"] = xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_VECTOR3 | xrfragment_XRF.T_STRING | xrfragment_XRF.T_STRING_OBJ | xrfragment_XRF.METADATA | xrfragment_XRF.NAVIGATOR;
+ Frag_h["rot"] = xrfragment_XRF.QUERY_OPERATOR | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_VECTOR3 | xrfragment_XRF.METADATA | xrfragment_XRF.NAVIGATOR;
+ Frag_h["t"] = xrfragment_XRF.ASSET | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_FLOAT | xrfragment_XRF.T_VECTOR2 | xrfragment_XRF.T_STRING | xrfragment_XRF.NAVIGATOR | xrfragment_XRF.METADATA;
+ Frag_h["tv"] = xrfragment_XRF.ASSET | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_FLOAT | xrfragment_XRF.T_VECTOR2 | xrfragment_XRF.T_VECTOR3 | xrfragment_XRF.NAVIGATOR | xrfragment_XRF.METADATA;
+ Frag_h["namespace"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["SPDX"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["unit"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["description"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["session"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_URL | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.NAVIGATOR | xrfragment_XRF.METADATA | xrfragment_XRF.PROMPT;
+ var keyStripped = key.replace(xrfragment_XRF.operators.r,"");
+ var isPVDynamic = key.length > 0 && !Object.prototype.hasOwnProperty.call(Frag_h,key);
+ var isPVDefault = value.length == 0 && key.length > 0 && key == "#";
+ if(isPVDynamic) {
+ var v = new xrfragment_XRF(key,xrfragment_XRF.PV_EXECUTE | xrfragment_XRF.NAVIGATOR,index);
+ v.validate(value);
+ store[keyStripped] = v;
+ return true;
+ }
+ var v = new xrfragment_XRF(key,Frag_h[key],index);
+ if(Object.prototype.hasOwnProperty.call(Frag_h,key)) {
+ if(!v.validate(value)) {
+ console.log("src/xrfragment/Parser.hx:66:","⚠ fragment '" + key + "' has incompatible value (" + value + ")");
+ return false;
+ }
+ store[keyStripped] = v;
+ if(xrfragment_Parser.debug) {
+ console.log("src/xrfragment/Parser.hx:70:","✔ " + key + ": " + v.string);
+ }
+ } else {
+ if(typeof(value) == "string") {
+ v.guessType(v,value);
+ }
+ v.noXRF = true;
+ store[keyStripped] = v;
+ }
+ return true;
+};
+var xrfragment_URI = $hx_exports["xrfragment"]["URI"] = function() { };
+xrfragment_URI.__name__ = true;
+xrfragment_URI.parse = function(url,filter) {
+ var store = { };
+ if(url == null || url.indexOf("#") == -1) {
+ return store;
+ }
+ var fragment = url.split("#");
+ var splitArray = fragment[1].split("&");
+ var _g = 0;
+ var _g1 = splitArray.length;
+ while(_g < _g1) {
+ var i = _g++;
+ var splitByEqual = splitArray[i].split("=");
+ var regexPlus = new EReg("\\+","g");
+ var key = splitByEqual[0];
+ var value = "";
+ if(splitByEqual.length > 1) {
+ var s = regexPlus.split(splitByEqual[1]).join(" ");
+ value = decodeURIComponent(s.split("+").join(" "));
+ }
+ var ok = xrfragment_Parser.parse(key,value,store,i);
+ }
+ if(filter != null && filter != 0) {
+ var _g = 0;
+ var _g1 = Reflect.fields(store);
+ while(_g < _g1.length) {
+ var key = _g1[_g];
+ ++_g;
+ var xrf = store[key];
+ if(!xrf.is(filter)) {
+ Reflect.deleteField(store,key);
+ }
+ }
+ }
+ return store;
+};
+var xrfragment_XRF = $hx_exports["xrfragment"]["XRF"] = function(_fragment,_flags,_index) {
+ this.fragment = _fragment;
+ this.flags = _flags;
+ this.index = _index;
+};
+xrfragment_XRF.__name__ = true;
+xrfragment_XRF.set = function(flag,flags) {
+ return flags | flag;
+};
+xrfragment_XRF.unset = function(flag,flags) {
+ return flags & ~flag;
+};
+xrfragment_XRF.prototype = {
+ is: function(flag) {
+ var v = this.flags;
+ if(!(typeof(v) == "number" && ((v | 0) === v))) {
+ this.flags = 0;
+ }
+ return (this.flags & flag) != 0;
+ }
+ ,validate: function(value) {
+ this.guessType(this,value);
+ var ok = true;
+ if(!this.is(xrfragment_XRF.T_FLOAT) && this.is(xrfragment_XRF.T_VECTOR2) && !(typeof(this.x) == "number" && typeof(this.y) == "number")) {
+ ok = false;
+ }
+ if(!(this.is(xrfragment_XRF.T_VECTOR2) || this.is(xrfragment_XRF.T_STRING)) && this.is(xrfragment_XRF.T_VECTOR3) && !(typeof(this.x) == "number" && typeof(this.y) == "number" && typeof(this.z) == "number")) {
+ ok = false;
+ }
+ return ok;
+ }
+ ,guessType: function(v,str) {
+ v.string = str;
+ if(typeof(str) != "string") {
+ return;
+ }
+ if(str.length > 0) {
+ if(str.split(",").length > 1) {
+ var xyzw = str.split(",");
+ if(xyzw.length > 0) {
+ v.x = parseFloat(xyzw[0]);
+ }
+ if(xyzw.length > 1) {
+ v.y = parseFloat(xyzw[1]);
+ }
+ if(xyzw.length > 2) {
+ v.z = parseFloat(xyzw[2]);
+ }
+ if(xyzw.length > 3) {
+ v.w = parseFloat(xyzw[3]);
+ }
+ }
+ if(xrfragment_XRF.isColor.match(str)) {
+ v.color = str;
+ }
+ if(xrfragment_XRF.isFloat.match(str)) {
+ v.x = parseFloat(str);
+ v.float = v.x;
+ }
+ if(xrfragment_XRF.isInt.match(str)) {
+ v.int = Std.parseInt(str);
+ v.x = v.int;
+ }
+ v.filter = new xrfragment_Filter(v.fragment + "=" + v.string);
+ } else {
+ v.filter = new xrfragment_Filter(v.fragment);
+ }
+ }
+};
+if(typeof(performance) != "undefined" ? typeof(performance.now) == "function" : false) {
+ HxOverrides.now = performance.now.bind(performance);
+}
+String.__name__ = true;
+Array.__name__ = true;
+js_Boot.__toStr = ({ }).toString;
+xrfragment_Parser.error = "";
+xrfragment_Parser.debug = false;
+xrfragment_XRF.ASSET = 1;
+xrfragment_XRF.PROP_BIND = 2;
+xrfragment_XRF.QUERY_OPERATOR = 4;
+xrfragment_XRF.PROMPT = 8;
+xrfragment_XRF.ROUNDROBIN = 16;
+xrfragment_XRF.NAVIGATOR = 32;
+xrfragment_XRF.METADATA = 64;
+xrfragment_XRF.PV_OVERRIDE = 128;
+xrfragment_XRF.PV_EXECUTE = 256;
+xrfragment_XRF.T_COLOR = 8192;
+xrfragment_XRF.T_INT = 16384;
+xrfragment_XRF.T_FLOAT = 32768;
+xrfragment_XRF.T_VECTOR2 = 65536;
+xrfragment_XRF.T_VECTOR3 = 131072;
+xrfragment_XRF.T_URL = 262144;
+xrfragment_XRF.T_PREDEFINED_VIEW = 524288;
+xrfragment_XRF.T_STRING = 1048576;
+xrfragment_XRF.T_STRING_OBJ = 2097152;
+xrfragment_XRF.T_STRING_OBJ_PROP = 4194304;
+xrfragment_XRF.isColor = new EReg("^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$","");
+xrfragment_XRF.isInt = new EReg("^[-0-9]+$","");
+xrfragment_XRF.isFloat = new EReg("^[-0-9]+\\.[0-9]+$","");
+xrfragment_XRF.isVector = new EReg("([,]+|\\w)","");
+xrfragment_XRF.isUrl = new EReg("(://)?\\..*","");
+xrfragment_XRF.isUrlOrPretypedView = new EReg("(^#|://)?\\..*","");
+xrfragment_XRF.isString = new EReg(".*","");
+xrfragment_XRF.operators = new EReg("(^-|[\\*]+)","");
+xrfragment_XRF.isProp = new EReg("^.*=[><=]?","");
+xrfragment_XRF.isExclude = new EReg("^-","");
+xrfragment_XRF.isDeep = new EReg("\\*","");
+xrfragment_XRF.isNumber = new EReg("^[0-9\\.]+$","");
+})({});
+var xrfragment = $hx_exports["xrfragment"];
+export default xrfragment;
+var $hx_exports = typeof exports != "undefined" ? exports : typeof window != "undefined" ? window : typeof self != "undefined" ? self : this;
+(function ($global) { "use strict";
+$hx_exports["xrfragment"] = $hx_exports["xrfragment"] || {};
+var EReg = function(r,opt) {
+ this.r = new RegExp(r,opt.split("u").join(""));
+};
+EReg.__name__ = true;
+EReg.prototype = {
+ match: function(s) {
+ if(this.r.global) {
+ this.r.lastIndex = 0;
+ }
+ this.r.m = this.r.exec(s);
+ this.r.s = s;
+ return this.r.m != null;
+ }
+ ,split: function(s) {
+ var d = "#__delim__#";
+ return s.replace(this.r,d).split(d);
+ }
+};
+var HxOverrides = function() { };
+HxOverrides.__name__ = true;
+HxOverrides.cca = function(s,index) {
+ var x = s.charCodeAt(index);
+ if(x != x) {
+ return undefined;
+ }
+ return x;
+};
+HxOverrides.substr = function(s,pos,len) {
+ if(len == null) {
+ len = s.length;
+ } else if(len < 0) {
+ if(pos == 0) {
+ len = s.length + len;
+ } else {
+ return "";
+ }
+ }
+ return s.substr(pos,len);
+};
+HxOverrides.now = function() {
+ return Date.now();
+};
+Math.__name__ = true;
+var Reflect = function() { };
+Reflect.__name__ = true;
+Reflect.field = function(o,field) {
+ try {
+ return o[field];
+ } catch( _g ) {
+ return null;
+ }
+};
+Reflect.fields = function(o) {
+ var a = [];
+ if(o != null) {
+ var hasOwnProperty = Object.prototype.hasOwnProperty;
+ for( var f in o ) {
+ if(f != "__id__" && f != "hx__closures__" && hasOwnProperty.call(o,f)) {
+ a.push(f);
+ }
+ }
+ }
+ return a;
+};
+Reflect.deleteField = function(o,field) {
+ if(!Object.prototype.hasOwnProperty.call(o,field)) {
+ return false;
+ }
+ delete(o[field]);
+ return true;
+};
+Reflect.copy = function(o) {
+ if(o == null) {
+ return null;
+ }
+ var o2 = { };
+ var _g = 0;
+ var _g1 = Reflect.fields(o);
+ while(_g < _g1.length) {
+ var f = _g1[_g];
+ ++_g;
+ o2[f] = Reflect.field(o,f);
+ }
+ return o2;
+};
+var Std = function() { };
+Std.__name__ = true;
+Std.string = function(s) {
+ return js_Boot.__string_rec(s,"");
+};
+Std.parseInt = function(x) {
+ if(x != null) {
+ var _g = 0;
+ var _g1 = x.length;
+ while(_g < _g1) {
+ var i = _g++;
+ var c = x.charCodeAt(i);
+ if(c <= 8 || c >= 14 && c != 32 && c != 45) {
+ var nc = x.charCodeAt(i + 1);
+ var v = parseInt(x,nc == 120 || nc == 88 ? 16 : 10);
+ if(isNaN(v)) {
+ return null;
+ } else {
+ return v;
+ }
+ }
+ }
+ }
+ return null;
+};
+var StringTools = function() { };
+StringTools.__name__ = true;
+StringTools.isSpace = function(s,pos) {
+ var c = HxOverrides.cca(s,pos);
+ if(!(c > 8 && c < 14)) {
+ return c == 32;
+ } else {
+ return true;
+ }
+};
+StringTools.ltrim = function(s) {
+ var l = s.length;
+ var r = 0;
+ while(r < l && StringTools.isSpace(s,r)) ++r;
+ if(r > 0) {
+ return HxOverrides.substr(s,r,l - r);
+ } else {
+ return s;
+ }
+};
+StringTools.rtrim = function(s) {
+ var l = s.length;
+ var r = 0;
+ while(r < l && StringTools.isSpace(s,l - r - 1)) ++r;
+ if(r > 0) {
+ return HxOverrides.substr(s,0,l - r);
+ } else {
+ return s;
+ }
+};
+StringTools.trim = function(s) {
+ return StringTools.ltrim(StringTools.rtrim(s));
+};
+var haxe_iterators_ArrayIterator = function(array) {
+ this.current = 0;
+ this.array = array;
+};
+haxe_iterators_ArrayIterator.__name__ = true;
+haxe_iterators_ArrayIterator.prototype = {
+ hasNext: function() {
+ return this.current < this.array.length;
+ }
+ ,next: function() {
+ return this.array[this.current++];
+ }
+};
+var js_Boot = function() { };
+js_Boot.__name__ = true;
+js_Boot.__string_rec = function(o,s) {
+ if(o == null) {
+ return "null";
+ }
+ if(s.length >= 5) {
+ return "<...>";
+ }
+ var t = typeof(o);
+ if(t == "function" && (o.__name__ || o.__ename__)) {
+ t = "object";
+ }
+ switch(t) {
+ case "function":
+ return "";
+ case "object":
+ if(((o) instanceof Array)) {
+ var str = "[";
+ s += "\t";
+ var _g = 0;
+ var _g1 = o.length;
+ while(_g < _g1) {
+ var i = _g++;
+ str += (i > 0 ? "," : "") + js_Boot.__string_rec(o[i],s);
+ }
+ str += "]";
+ return str;
+ }
+ var tostr;
+ try {
+ tostr = o.toString;
+ } catch( _g ) {
+ return "???";
+ }
+ if(tostr != null && tostr != Object.toString && typeof(tostr) == "function") {
+ var s2 = o.toString();
+ if(s2 != "[object Object]") {
+ return s2;
+ }
+ }
+ var str = "{\n";
+ s += "\t";
+ var hasp = o.hasOwnProperty != null;
+ var k = null;
+ for( k in o ) {
+ if(hasp && !o.hasOwnProperty(k)) {
+ continue;
+ }
+ if(k == "prototype" || k == "__class__" || k == "__super__" || k == "__interfaces__" || k == "__properties__") {
+ continue;
+ }
+ if(str.length != 2) {
+ str += ", \n";
+ }
+ str += s + k + " : " + js_Boot.__string_rec(o[k],s);
+ }
+ s = s.substring(1);
+ str += "\n" + s + "}";
+ return str;
+ case "string":
+ return o;
+ default:
+ return String(o);
+ }
+};
+var xrfragment_Filter = $hx_exports["xrfragment"]["Filter"] = function(str) {
+ this.q = { };
+ this.str = "";
+ if(str != null) {
+ this.parse(str);
+ }
+};
+xrfragment_Filter.__name__ = true;
+xrfragment_Filter.prototype = {
+ toObject: function() {
+ return Reflect.copy(this.q);
+ }
+ ,get: function() {
+ return Reflect.copy(this.q);
+ }
+ ,parse: function(str) {
+ var token = str.split(" ");
+ var q = { };
+ var process = function(str,prefix) {
+ if(prefix == null) {
+ prefix = "";
+ }
+ str = StringTools.trim(str);
+ var k = str.split("=")[0];
+ var v = str.split("=")[1];
+ var filter = { };
+ if(q[prefix + k]) {
+ filter = q[prefix + k];
+ }
+ if(xrfragment_XRF.isProp.match(str)) {
+ var oper = "";
+ if(str.indexOf(">") != -1) {
+ oper = ">";
+ }
+ if(str.indexOf("<") != -1) {
+ oper = "<";
+ }
+ if(xrfragment_XRF.isExclude.match(k)) {
+ k = HxOverrides.substr(k,1,null);
+ }
+ v = HxOverrides.substr(v,oper.length,null);
+ if(oper.length == 0) {
+ oper = "=";
+ }
+ var rule = { };
+ if(xrfragment_XRF.isNumber.match(v)) {
+ rule[oper] = parseFloat(v);
+ } else {
+ rule[oper] = v;
+ }
+ q["expr"] = rule;
+ }
+ var value = xrfragment_XRF.isDeep.match(str) ? k.split("*").length - 1 : 0;
+ q["deep"] = value;
+ var value = xrfragment_XRF.isExclude.match(str) ? false : true;
+ q["show"] = value;
+ var value = k.replace(xrfragment_XRF.operators.r,"");
+ q["key"] = value;
+ q["value"] = v;
+ };
+ var _g = 0;
+ var _g1 = token.length;
+ while(_g < _g1) {
+ var i = _g++;
+ process(token[i]);
+ }
+ return this.q = q;
+ }
+ ,test: function(obj) {
+ var qualify = false;
+ var _g = 0;
+ var _g1 = Reflect.fields(obj);
+ while(_g < _g1.length) {
+ var k = _g1[_g];
+ ++_g;
+ var v = Std.string(Reflect.field(obj,k));
+ if(this.testProperty(k,v)) {
+ qualify = true;
+ }
+ }
+ var _g = 0;
+ var _g1 = Reflect.fields(obj);
+ while(_g < _g1.length) {
+ var k = _g1[_g];
+ ++_g;
+ var v = Std.string(Reflect.field(obj,k));
+ if(this.testProperty(k,v,true)) {
+ qualify = false;
+ }
+ }
+ return qualify;
+ }
+ ,testProperty: function(property,value,exclude) {
+ var conds = 0;
+ var fails = 0;
+ var qualify = 0;
+ var testprop = function(expr) {
+ conds += 1;
+ fails += expr ? 0 : 1;
+ return expr;
+ };
+ if(this.q[value] != null) {
+ var v = this.q[value];
+ if(v[property] != null) {
+ return v[property];
+ }
+ }
+ if(Reflect.field(this.q,"expr")) {
+ var f = Reflect.field(this.q,"expr");
+ if(!Reflect.field(this.q,"show")) {
+ if(Reflect.field(f,"!=") != null && testprop((value == null ? "null" : "" + value) == Std.string(Reflect.field(f,"!="))) && exclude) {
+ ++qualify;
+ }
+ } else {
+ if(Reflect.field(f,"*") != null && testprop(parseFloat(value) != null)) {
+ ++qualify;
+ }
+ if(Reflect.field(f,">") != null && testprop(parseFloat(value) >= parseFloat(Reflect.field(f,">")))) {
+ ++qualify;
+ }
+ if(Reflect.field(f,"<") != null && testprop(parseFloat(value) <= parseFloat(Reflect.field(f,"<")))) {
+ ++qualify;
+ }
+ if(Reflect.field(f,"=") != null && (testprop(value == Reflect.field(f,"=")) || testprop(parseFloat(value) == parseFloat(Reflect.field(f,"="))))) {
+ ++qualify;
+ }
+ }
+ }
+ return qualify > 0;
+ }
+};
+var xrfragment_Parser = $hx_exports["xrfragment"]["Parser"] = function() { };
+xrfragment_Parser.__name__ = true;
+xrfragment_Parser.parse = function(key,value,store,index) {
+ var Frag_h = Object.create(null);
+ Frag_h["#"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_PREDEFINED_VIEW | xrfragment_XRF.PV_EXECUTE;
+ Frag_h["src"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_URL;
+ Frag_h["href"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_URL | xrfragment_XRF.T_PREDEFINED_VIEW;
+ Frag_h["tag"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["pos"] = xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_VECTOR3 | xrfragment_XRF.T_STRING | xrfragment_XRF.T_STRING_OBJ | xrfragment_XRF.METADATA | xrfragment_XRF.NAVIGATOR;
+ Frag_h["rot"] = xrfragment_XRF.QUERY_OPERATOR | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_VECTOR3 | xrfragment_XRF.METADATA | xrfragment_XRF.NAVIGATOR;
+ Frag_h["t"] = xrfragment_XRF.ASSET | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_FLOAT | xrfragment_XRF.T_VECTOR2 | xrfragment_XRF.T_STRING | xrfragment_XRF.NAVIGATOR | xrfragment_XRF.METADATA;
+ Frag_h["tv"] = xrfragment_XRF.ASSET | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_FLOAT | xrfragment_XRF.T_VECTOR2 | xrfragment_XRF.T_VECTOR3 | xrfragment_XRF.NAVIGATOR | xrfragment_XRF.METADATA;
+ Frag_h["namespace"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["SPDX"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["unit"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["description"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["session"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_URL | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.NAVIGATOR | xrfragment_XRF.METADATA | xrfragment_XRF.PROMPT;
+ var keyStripped = key.replace(xrfragment_XRF.operators.r,"");
+ var isPVDynamic = key.length > 0 && !Object.prototype.hasOwnProperty.call(Frag_h,key);
+ var isPVDefault = value.length == 0 && key.length > 0 && key == "#";
+ if(isPVDynamic) {
+ var v = new xrfragment_XRF(key,xrfragment_XRF.PV_EXECUTE | xrfragment_XRF.NAVIGATOR,index);
+ v.validate(value);
+ store[keyStripped] = v;
+ return true;
+ }
+ var v = new xrfragment_XRF(key,Frag_h[key],index);
+ if(Object.prototype.hasOwnProperty.call(Frag_h,key)) {
+ if(!v.validate(value)) {
+ console.log("src/xrfragment/Parser.hx:66:","⚠ fragment '" + key + "' has incompatible value (" + value + ")");
+ return false;
+ }
+ store[keyStripped] = v;
+ if(xrfragment_Parser.debug) {
+ console.log("src/xrfragment/Parser.hx:70:","✔ " + key + ": " + v.string);
+ }
+ } else {
+ if(typeof(value) == "string") {
+ v.guessType(v,value);
+ }
+ v.noXRF = true;
+ store[keyStripped] = v;
+ }
+ return true;
+};
+var xrfragment_URI = $hx_exports["xrfragment"]["URI"] = function() { };
+xrfragment_URI.__name__ = true;
+xrfragment_URI.parse = function(url,filter) {
+ var store = { };
+ if(url == null || url.indexOf("#") == -1) {
+ return store;
+ }
+ var fragment = url.split("#");
+ var splitArray = fragment[1].split("&");
+ var _g = 0;
+ var _g1 = splitArray.length;
+ while(_g < _g1) {
+ var i = _g++;
+ var splitByEqual = splitArray[i].split("=");
+ var regexPlus = new EReg("\\+","g");
+ var key = splitByEqual[0];
+ var value = "";
+ if(splitByEqual.length > 1) {
+ var s = regexPlus.split(splitByEqual[1]).join(" ");
+ value = decodeURIComponent(s.split("+").join(" "));
+ }
+ var ok = xrfragment_Parser.parse(key,value,store,i);
+ }
+ if(filter != null && filter != 0) {
+ var _g = 0;
+ var _g1 = Reflect.fields(store);
+ while(_g < _g1.length) {
+ var key = _g1[_g];
+ ++_g;
+ var xrf = store[key];
+ if(!xrf.is(filter)) {
+ Reflect.deleteField(store,key);
+ }
+ }
+ }
+ return store;
+};
+var xrfragment_XRF = $hx_exports["xrfragment"]["XRF"] = function(_fragment,_flags,_index) {
+ this.fragment = _fragment;
+ this.flags = _flags;
+ this.index = _index;
+};
+xrfragment_XRF.__name__ = true;
+xrfragment_XRF.set = function(flag,flags) {
+ return flags | flag;
+};
+xrfragment_XRF.unset = function(flag,flags) {
+ return flags & ~flag;
+};
+xrfragment_XRF.prototype = {
+ is: function(flag) {
+ var v = this.flags;
+ if(!(typeof(v) == "number" && ((v | 0) === v))) {
+ this.flags = 0;
+ }
+ return (this.flags & flag) != 0;
+ }
+ ,validate: function(value) {
+ this.guessType(this,value);
+ var ok = true;
+ if(!this.is(xrfragment_XRF.T_FLOAT) && this.is(xrfragment_XRF.T_VECTOR2) && !(typeof(this.x) == "number" && typeof(this.y) == "number")) {
+ ok = false;
+ }
+ if(!(this.is(xrfragment_XRF.T_VECTOR2) || this.is(xrfragment_XRF.T_STRING)) && this.is(xrfragment_XRF.T_VECTOR3) && !(typeof(this.x) == "number" && typeof(this.y) == "number" && typeof(this.z) == "number")) {
+ ok = false;
+ }
+ return ok;
+ }
+ ,guessType: function(v,str) {
+ v.string = str;
+ if(typeof(str) != "string") {
+ return;
+ }
+ if(str.length > 0) {
+ if(str.split(",").length > 1) {
+ var xyzw = str.split(",");
+ if(xyzw.length > 0) {
+ v.x = parseFloat(xyzw[0]);
+ }
+ if(xyzw.length > 1) {
+ v.y = parseFloat(xyzw[1]);
+ }
+ if(xyzw.length > 2) {
+ v.z = parseFloat(xyzw[2]);
+ }
+ if(xyzw.length > 3) {
+ v.w = parseFloat(xyzw[3]);
+ }
+ }
+ if(xrfragment_XRF.isColor.match(str)) {
+ v.color = str;
+ }
+ if(xrfragment_XRF.isFloat.match(str)) {
+ v.x = parseFloat(str);
+ v.float = v.x;
+ }
+ if(xrfragment_XRF.isInt.match(str)) {
+ v.int = Std.parseInt(str);
+ v.x = v.int;
+ }
+ v.filter = new xrfragment_Filter(v.fragment + "=" + v.string);
+ } else {
+ v.filter = new xrfragment_Filter(v.fragment);
+ }
+ }
+};
+if(typeof(performance) != "undefined" ? typeof(performance.now) == "function" : false) {
+ HxOverrides.now = performance.now.bind(performance);
+}
+String.__name__ = true;
+Array.__name__ = true;
+js_Boot.__toStr = ({ }).toString;
+xrfragment_Parser.error = "";
+xrfragment_Parser.debug = false;
+xrfragment_XRF.ASSET = 1;
+xrfragment_XRF.PROP_BIND = 2;
+xrfragment_XRF.QUERY_OPERATOR = 4;
+xrfragment_XRF.PROMPT = 8;
+xrfragment_XRF.ROUNDROBIN = 16;
+xrfragment_XRF.NAVIGATOR = 32;
+xrfragment_XRF.METADATA = 64;
+xrfragment_XRF.PV_OVERRIDE = 128;
+xrfragment_XRF.PV_EXECUTE = 256;
+xrfragment_XRF.T_COLOR = 8192;
+xrfragment_XRF.T_INT = 16384;
+xrfragment_XRF.T_FLOAT = 32768;
+xrfragment_XRF.T_VECTOR2 = 65536;
+xrfragment_XRF.T_VECTOR3 = 131072;
+xrfragment_XRF.T_URL = 262144;
+xrfragment_XRF.T_PREDEFINED_VIEW = 524288;
+xrfragment_XRF.T_STRING = 1048576;
+xrfragment_XRF.T_STRING_OBJ = 2097152;
+xrfragment_XRF.T_STRING_OBJ_PROP = 4194304;
+xrfragment_XRF.isColor = new EReg("^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$","");
+xrfragment_XRF.isInt = new EReg("^[-0-9]+$","");
+xrfragment_XRF.isFloat = new EReg("^[-0-9]+\\.[0-9]+$","");
+xrfragment_XRF.isVector = new EReg("([,]+|\\w)","");
+xrfragment_XRF.isUrl = new EReg("(://)?\\..*","");
+xrfragment_XRF.isUrlOrPretypedView = new EReg("(^#|://)?\\..*","");
+xrfragment_XRF.isString = new EReg(".*","");
+xrfragment_XRF.operators = new EReg("(^-|[\\*]+)","");
+xrfragment_XRF.isProp = new EReg("^.*=[><=]?","");
+xrfragment_XRF.isExclude = new EReg("^-","");
+xrfragment_XRF.isDeep = new EReg("\\*","");
+xrfragment_XRF.isNumber = new EReg("^[0-9\\.]+$","");
+})({});
+var xrfragment = $hx_exports["xrfragment"];
+export default xrfragment;
+var $hx_exports = typeof exports != "undefined" ? exports : typeof window != "undefined" ? window : typeof self != "undefined" ? self : this;
+(function ($global) { "use strict";
+$hx_exports["xrfragment"] = $hx_exports["xrfragment"] || {};
+var EReg = function(r,opt) {
+ this.r = new RegExp(r,opt.split("u").join(""));
+};
+EReg.__name__ = true;
+EReg.prototype = {
+ match: function(s) {
+ if(this.r.global) {
+ this.r.lastIndex = 0;
+ }
+ this.r.m = this.r.exec(s);
+ this.r.s = s;
+ return this.r.m != null;
+ }
+ ,split: function(s) {
+ var d = "#__delim__#";
+ return s.replace(this.r,d).split(d);
+ }
+};
+var HxOverrides = function() { };
+HxOverrides.__name__ = true;
+HxOverrides.cca = function(s,index) {
+ var x = s.charCodeAt(index);
+ if(x != x) {
+ return undefined;
+ }
+ return x;
+};
+HxOverrides.substr = function(s,pos,len) {
+ if(len == null) {
+ len = s.length;
+ } else if(len < 0) {
+ if(pos == 0) {
+ len = s.length + len;
+ } else {
+ return "";
+ }
+ }
+ return s.substr(pos,len);
+};
+HxOverrides.now = function() {
+ return Date.now();
+};
+Math.__name__ = true;
+var Reflect = function() { };
+Reflect.__name__ = true;
+Reflect.field = function(o,field) {
+ try {
+ return o[field];
+ } catch( _g ) {
+ return null;
+ }
+};
+Reflect.fields = function(o) {
+ var a = [];
+ if(o != null) {
+ var hasOwnProperty = Object.prototype.hasOwnProperty;
+ for( var f in o ) {
+ if(f != "__id__" && f != "hx__closures__" && hasOwnProperty.call(o,f)) {
+ a.push(f);
+ }
+ }
+ }
+ return a;
+};
+Reflect.deleteField = function(o,field) {
+ if(!Object.prototype.hasOwnProperty.call(o,field)) {
+ return false;
+ }
+ delete(o[field]);
+ return true;
+};
+Reflect.copy = function(o) {
+ if(o == null) {
+ return null;
+ }
+ var o2 = { };
+ var _g = 0;
+ var _g1 = Reflect.fields(o);
+ while(_g < _g1.length) {
+ var f = _g1[_g];
+ ++_g;
+ o2[f] = Reflect.field(o,f);
+ }
+ return o2;
+};
+var Std = function() { };
+Std.__name__ = true;
+Std.string = function(s) {
+ return js_Boot.__string_rec(s,"");
+};
+Std.parseInt = function(x) {
+ if(x != null) {
+ var _g = 0;
+ var _g1 = x.length;
+ while(_g < _g1) {
+ var i = _g++;
+ var c = x.charCodeAt(i);
+ if(c <= 8 || c >= 14 && c != 32 && c != 45) {
+ var nc = x.charCodeAt(i + 1);
+ var v = parseInt(x,nc == 120 || nc == 88 ? 16 : 10);
+ if(isNaN(v)) {
+ return null;
+ } else {
+ return v;
+ }
+ }
+ }
+ }
+ return null;
+};
+var StringTools = function() { };
+StringTools.__name__ = true;
+StringTools.isSpace = function(s,pos) {
+ var c = HxOverrides.cca(s,pos);
+ if(!(c > 8 && c < 14)) {
+ return c == 32;
+ } else {
+ return true;
+ }
+};
+StringTools.ltrim = function(s) {
+ var l = s.length;
+ var r = 0;
+ while(r < l && StringTools.isSpace(s,r)) ++r;
+ if(r > 0) {
+ return HxOverrides.substr(s,r,l - r);
+ } else {
+ return s;
+ }
+};
+StringTools.rtrim = function(s) {
+ var l = s.length;
+ var r = 0;
+ while(r < l && StringTools.isSpace(s,l - r - 1)) ++r;
+ if(r > 0) {
+ return HxOverrides.substr(s,0,l - r);
+ } else {
+ return s;
+ }
+};
+StringTools.trim = function(s) {
+ return StringTools.ltrim(StringTools.rtrim(s));
+};
+var haxe_iterators_ArrayIterator = function(array) {
+ this.current = 0;
+ this.array = array;
+};
+haxe_iterators_ArrayIterator.__name__ = true;
+haxe_iterators_ArrayIterator.prototype = {
+ hasNext: function() {
+ return this.current < this.array.length;
+ }
+ ,next: function() {
+ return this.array[this.current++];
+ }
+};
+var js_Boot = function() { };
+js_Boot.__name__ = true;
+js_Boot.__string_rec = function(o,s) {
+ if(o == null) {
+ return "null";
+ }
+ if(s.length >= 5) {
+ return "<...>";
+ }
+ var t = typeof(o);
+ if(t == "function" && (o.__name__ || o.__ename__)) {
+ t = "object";
+ }
+ switch(t) {
+ case "function":
+ return "";
+ case "object":
+ if(((o) instanceof Array)) {
+ var str = "[";
+ s += "\t";
+ var _g = 0;
+ var _g1 = o.length;
+ while(_g < _g1) {
+ var i = _g++;
+ str += (i > 0 ? "," : "") + js_Boot.__string_rec(o[i],s);
+ }
+ str += "]";
+ return str;
+ }
+ var tostr;
+ try {
+ tostr = o.toString;
+ } catch( _g ) {
+ return "???";
+ }
+ if(tostr != null && tostr != Object.toString && typeof(tostr) == "function") {
+ var s2 = o.toString();
+ if(s2 != "[object Object]") {
+ return s2;
+ }
+ }
+ var str = "{\n";
+ s += "\t";
+ var hasp = o.hasOwnProperty != null;
+ var k = null;
+ for( k in o ) {
+ if(hasp && !o.hasOwnProperty(k)) {
+ continue;
+ }
+ if(k == "prototype" || k == "__class__" || k == "__super__" || k == "__interfaces__" || k == "__properties__") {
+ continue;
+ }
+ if(str.length != 2) {
+ str += ", \n";
+ }
+ str += s + k + " : " + js_Boot.__string_rec(o[k],s);
+ }
+ s = s.substring(1);
+ str += "\n" + s + "}";
+ return str;
+ case "string":
+ return o;
+ default:
+ return String(o);
+ }
+};
+var xrfragment_Filter = $hx_exports["xrfragment"]["Filter"] = function(str) {
+ this.q = { };
+ this.str = "";
+ if(str != null) {
+ this.parse(str);
+ }
+};
+xrfragment_Filter.__name__ = true;
+xrfragment_Filter.prototype = {
+ toObject: function() {
+ return Reflect.copy(this.q);
+ }
+ ,get: function() {
+ return Reflect.copy(this.q);
+ }
+ ,parse: function(str) {
+ var token = str.split(" ");
+ var q = { };
+ var process = function(str,prefix) {
+ if(prefix == null) {
+ prefix = "";
+ }
+ str = StringTools.trim(str);
+ var k = str.split("=")[0];
+ var v = str.split("=")[1];
+ var filter = { };
+ if(q[prefix + k]) {
+ filter = q[prefix + k];
+ }
+ if(xrfragment_XRF.isProp.match(str)) {
+ var oper = "";
+ if(str.indexOf(">") != -1) {
+ oper = ">";
+ }
+ if(str.indexOf("<") != -1) {
+ oper = "<";
+ }
+ if(xrfragment_XRF.isExclude.match(k)) {
+ k = HxOverrides.substr(k,1,null);
+ }
+ v = HxOverrides.substr(v,oper.length,null);
+ if(oper.length == 0) {
+ oper = "=";
+ }
+ var rule = { };
+ if(xrfragment_XRF.isNumber.match(v)) {
+ rule[oper] = parseFloat(v);
+ } else {
+ rule[oper] = v;
+ }
+ q["expr"] = rule;
+ }
+ var value = xrfragment_XRF.isDeep.match(str) ? k.split("*").length - 1 : 0;
+ q["deep"] = value;
+ var value = xrfragment_XRF.isExclude.match(str) ? false : true;
+ q["show"] = value;
+ var value = k.replace(xrfragment_XRF.operators.r,"");
+ q["key"] = value;
+ q["value"] = v;
+ };
+ var _g = 0;
+ var _g1 = token.length;
+ while(_g < _g1) {
+ var i = _g++;
+ process(token[i]);
+ }
+ return this.q = q;
+ }
+ ,test: function(obj) {
+ var qualify = false;
+ var _g = 0;
+ var _g1 = Reflect.fields(obj);
+ while(_g < _g1.length) {
+ var k = _g1[_g];
+ ++_g;
+ var v = Std.string(Reflect.field(obj,k));
+ if(this.testProperty(k,v)) {
+ qualify = true;
+ }
+ }
+ var _g = 0;
+ var _g1 = Reflect.fields(obj);
+ while(_g < _g1.length) {
+ var k = _g1[_g];
+ ++_g;
+ var v = Std.string(Reflect.field(obj,k));
+ if(this.testProperty(k,v,true)) {
+ qualify = false;
+ }
+ }
+ return qualify;
+ }
+ ,testProperty: function(property,value,exclude) {
+ var conds = 0;
+ var fails = 0;
+ var qualify = 0;
+ var testprop = function(expr) {
+ conds += 1;
+ fails += expr ? 0 : 1;
+ return expr;
+ };
+ if(this.q[value] != null) {
+ var v = this.q[value];
+ if(v[property] != null) {
+ return v[property];
+ }
+ }
+ if(Reflect.field(this.q,"expr")) {
+ var f = Reflect.field(this.q,"expr");
+ if(!Reflect.field(this.q,"show")) {
+ if(Reflect.field(f,"!=") != null && testprop((value == null ? "null" : "" + value) == Std.string(Reflect.field(f,"!="))) && exclude) {
+ ++qualify;
+ }
+ } else {
+ if(Reflect.field(f,"*") != null && testprop(parseFloat(value) != null)) {
+ ++qualify;
+ }
+ if(Reflect.field(f,">") != null && testprop(parseFloat(value) >= parseFloat(Reflect.field(f,">")))) {
+ ++qualify;
+ }
+ if(Reflect.field(f,"<") != null && testprop(parseFloat(value) <= parseFloat(Reflect.field(f,"<")))) {
+ ++qualify;
+ }
+ if(Reflect.field(f,"=") != null && (testprop(value == Reflect.field(f,"=")) || testprop(parseFloat(value) == parseFloat(Reflect.field(f,"="))))) {
+ ++qualify;
+ }
+ }
+ }
+ return qualify > 0;
+ }
+};
+var xrfragment_Parser = $hx_exports["xrfragment"]["Parser"] = function() { };
+xrfragment_Parser.__name__ = true;
+xrfragment_Parser.parse = function(key,value,store,index) {
+ var Frag_h = Object.create(null);
+ Frag_h["#"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_PREDEFINED_VIEW | xrfragment_XRF.PV_EXECUTE;
+ Frag_h["src"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_URL;
+ Frag_h["href"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_URL | xrfragment_XRF.T_PREDEFINED_VIEW;
+ Frag_h["tag"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["pos"] = xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_VECTOR3 | xrfragment_XRF.T_STRING | xrfragment_XRF.T_STRING_OBJ | xrfragment_XRF.METADATA | xrfragment_XRF.NAVIGATOR;
+ Frag_h["rot"] = xrfragment_XRF.QUERY_OPERATOR | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_VECTOR3 | xrfragment_XRF.METADATA | xrfragment_XRF.NAVIGATOR;
+ Frag_h["t"] = xrfragment_XRF.ASSET | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_FLOAT | xrfragment_XRF.T_VECTOR2 | xrfragment_XRF.T_STRING | xrfragment_XRF.NAVIGATOR | xrfragment_XRF.METADATA;
+ Frag_h["tv"] = xrfragment_XRF.ASSET | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.T_FLOAT | xrfragment_XRF.T_VECTOR2 | xrfragment_XRF.T_VECTOR3 | xrfragment_XRF.NAVIGATOR | xrfragment_XRF.METADATA;
+ Frag_h["namespace"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["SPDX"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["unit"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["description"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_STRING;
+ Frag_h["session"] = xrfragment_XRF.ASSET | xrfragment_XRF.T_URL | xrfragment_XRF.PV_OVERRIDE | xrfragment_XRF.NAVIGATOR | xrfragment_XRF.METADATA | xrfragment_XRF.PROMPT;
+ var keyStripped = key.replace(xrfragment_XRF.operators.r,"");
+ var isPVDynamic = key.length > 0 && !Object.prototype.hasOwnProperty.call(Frag_h,key);
+ var isPVDefault = value.length == 0 && key.length > 0 && key == "#";
+ if(isPVDynamic) {
+ var v = new xrfragment_XRF(key,xrfragment_XRF.PV_EXECUTE | xrfragment_XRF.NAVIGATOR,index);
+ v.validate(value);
+ store[keyStripped] = v;
+ return true;
+ }
+ var v = new xrfragment_XRF(key,Frag_h[key],index);
+ if(Object.prototype.hasOwnProperty.call(Frag_h,key)) {
+ if(!v.validate(value)) {
+ console.log("src/xrfragment/Parser.hx:66:","⚠ fragment '" + key + "' has incompatible value (" + value + ")");
+ return false;
+ }
+ store[keyStripped] = v;
+ if(xrfragment_Parser.debug) {
+ console.log("src/xrfragment/Parser.hx:70:","✔ " + key + ": " + v.string);
+ }
+ } else {
+ if(typeof(value) == "string") {
+ v.guessType(v,value);
+ }
+ v.noXRF = true;
+ store[keyStripped] = v;
+ }
+ return true;
+};
+var xrfragment_URI = $hx_exports["xrfragment"]["URI"] = function() { };
+xrfragment_URI.__name__ = true;
+xrfragment_URI.parse = function(url,filter) {
+ var store = { };
+ if(url == null || url.indexOf("#") == -1) {
+ return store;
+ }
+ var fragment = url.split("#");
+ var splitArray = fragment[1].split("&");
+ var _g = 0;
+ var _g1 = splitArray.length;
+ while(_g < _g1) {
+ var i = _g++;
+ var splitByEqual = splitArray[i].split("=");
+ var regexPlus = new EReg("\\+","g");
+ var key = splitByEqual[0];
+ var value = "";
+ if(splitByEqual.length > 1) {
+ var s = regexPlus.split(splitByEqual[1]).join(" ");
+ value = decodeURIComponent(s.split("+").join(" "));
+ }
+ var ok = xrfragment_Parser.parse(key,value,store,i);
+ }
+ if(filter != null && filter != 0) {
+ var _g = 0;
+ var _g1 = Reflect.fields(store);
+ while(_g < _g1.length) {
+ var key = _g1[_g];
+ ++_g;
+ var xrf = store[key];
+ if(!xrf.is(filter)) {
+ Reflect.deleteField(store,key);
+ }
+ }
+ }
+ return store;
+};
+var xrfragment_XRF = $hx_exports["xrfragment"]["XRF"] = function(_fragment,_flags,_index) {
+ this.fragment = _fragment;
+ this.flags = _flags;
+ this.index = _index;
+};
+xrfragment_XRF.__name__ = true;
+xrfragment_XRF.set = function(flag,flags) {
+ return flags | flag;
+};
+xrfragment_XRF.unset = function(flag,flags) {
+ return flags & ~flag;
+};
+xrfragment_XRF.prototype = {
+ is: function(flag) {
+ var v = this.flags;
+ if(!(typeof(v) == "number" && ((v | 0) === v))) {
+ this.flags = 0;
+ }
+ return (this.flags & flag) != 0;
+ }
+ ,validate: function(value) {
+ this.guessType(this,value);
+ var ok = true;
+ if(!this.is(xrfragment_XRF.T_FLOAT) && this.is(xrfragment_XRF.T_VECTOR2) && !(typeof(this.x) == "number" && typeof(this.y) == "number")) {
+ ok = false;
+ }
+ if(!(this.is(xrfragment_XRF.T_VECTOR2) || this.is(xrfragment_XRF.T_STRING)) && this.is(xrfragment_XRF.T_VECTOR3) && !(typeof(this.x) == "number" && typeof(this.y) == "number" && typeof(this.z) == "number")) {
+ ok = false;
+ }
+ return ok;
+ }
+ ,guessType: function(v,str) {
+ v.string = str;
+ if(typeof(str) != "string") {
+ return;
+ }
+ if(str.length > 0) {
+ if(str.split(",").length > 1) {
+ var xyzw = str.split(",");
+ if(xyzw.length > 0) {
+ v.x = parseFloat(xyzw[0]);
+ }
+ if(xyzw.length > 1) {
+ v.y = parseFloat(xyzw[1]);
+ }
+ if(xyzw.length > 2) {
+ v.z = parseFloat(xyzw[2]);
+ }
+ if(xyzw.length > 3) {
+ v.w = parseFloat(xyzw[3]);
+ }
+ }
+ if(xrfragment_XRF.isColor.match(str)) {
+ v.color = str;
+ }
+ if(xrfragment_XRF.isFloat.match(str)) {
+ v.x = parseFloat(str);
+ v.float = v.x;
+ }
+ if(xrfragment_XRF.isInt.match(str)) {
+ v.int = Std.parseInt(str);
+ v.x = v.int;
+ }
+ v.filter = new xrfragment_Filter(v.fragment + "=" + v.string);
+ } else {
+ v.filter = new xrfragment_Filter(v.fragment);
+ }
+ }
+};
+if(typeof(performance) != "undefined" ? typeof(performance.now) == "function" : false) {
+ HxOverrides.now = performance.now.bind(performance);
+}
+String.__name__ = true;
+Array.__name__ = true;
+js_Boot.__toStr = ({ }).toString;
+xrfragment_Parser.error = "";
+xrfragment_Parser.debug = false;
+xrfragment_XRF.ASSET = 1;
+xrfragment_XRF.PROP_BIND = 2;
+xrfragment_XRF.QUERY_OPERATOR = 4;
+xrfragment_XRF.PROMPT = 8;
+xrfragment_XRF.ROUNDROBIN = 16;
+xrfragment_XRF.NAVIGATOR = 32;
+xrfragment_XRF.METADATA = 64;
+xrfragment_XRF.PV_OVERRIDE = 128;
+xrfragment_XRF.PV_EXECUTE = 256;
+xrfragment_XRF.T_COLOR = 8192;
+xrfragment_XRF.T_INT = 16384;
+xrfragment_XRF.T_FLOAT = 32768;
+xrfragment_XRF.T_VECTOR2 = 65536;
+xrfragment_XRF.T_VECTOR3 = 131072;
+xrfragment_XRF.T_URL = 262144;
+xrfragment_XRF.T_PREDEFINED_VIEW = 524288;
+xrfragment_XRF.T_STRING = 1048576;
+xrfragment_XRF.T_STRING_OBJ = 2097152;
+xrfragment_XRF.T_STRING_OBJ_PROP = 4194304;
+xrfragment_XRF.isColor = new EReg("^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$","");
+xrfragment_XRF.isInt = new EReg("^[-0-9]+$","");
+xrfragment_XRF.isFloat = new EReg("^[-0-9]+\\.[0-9]+$","");
+xrfragment_XRF.isVector = new EReg("([,]+|\\w)","");
+xrfragment_XRF.isUrl = new EReg("(://)?\\..*","");
+xrfragment_XRF.isUrlOrPretypedView = new EReg("(^#|://)?\\..*","");
+xrfragment_XRF.isString = new EReg(".*","");
+xrfragment_XRF.operators = new EReg("(^-|[\\*]+)","");
+xrfragment_XRF.isProp = new EReg("^.*=[><=]?","");
+xrfragment_XRF.isExclude = new EReg("^-","");
+xrfragment_XRF.isDeep = new EReg("\\*","");
+xrfragment_XRF.isNumber = new EReg("^[0-9\\.]+$","");
+})({});
+var xrfragment = $hx_exports["xrfragment"];
+export default xrfragment;
diff --git a/dist/xrfragment.three.js b/dist/xrfragment.three.js
index f68d42a..a41bb68 100644
--- a/dist/xrfragment.three.js
+++ b/dist/xrfragment.three.js
@@ -1,5 +1,5 @@
/*
- * v0.5.1 generated at Fri Dec 15 04:23:00 PM CET 2023
+ * v0.5.1 generated at Fri Dec 15 05:17:47 PM CET 2023
* https://xrfragment.org
* SPDX-License-Identifier: MPL-2.0
*/
@@ -656,16 +656,16 @@ window.XRFMENU = {
// enable meetings
let startMeeting = () => {
aScene.setAttribute('meeting', 'id: xrfragments')
- $('a#meeting').innerText = '📍 new meeting location'
+ $('a#meeting').innerText = '🧑🤝🧑 breakout meeting'
+ $('a#meeting').setAttribute('aria-description','breakout room')
}
$('a#meeting').addEventListener('click', () => {
if( aScene.getAttribute('meeting') ){ // meeting already, start breakout room
let parentRoom = document.location.href
XRFMENU.updateHashPosition(true)
- let visitorname = aScene.getAttribute("meeting").visitorname
- aScene.removeAttribute('meeting')
- // breakoutroom
- aScene.setAttribute('meeting', `id: xrfragments; visitorname: ${visitorname}; parentRoom: ${parentRoom}`)
+ let meeting = $('[meeting]').components['meeting']
+ meeting.data.parentRoom = parentRoom
+ meeting.update()
}else startMeeting()
})
if( document.location.hash.match(/(#|&)meet/) ) startMeeting()
diff --git a/dist/xrfragment.three.module.js b/dist/xrfragment.three.module.js
index 404f9ec..b749e5d 100644
--- a/dist/xrfragment.three.module.js
+++ b/dist/xrfragment.three.module.js
@@ -1,5 +1,5 @@
/*
- * v0.5.1 generated at Fri Dec 15 04:23:00 PM CET 2023
+ * v0.5.1 generated at Fri Dec 15 05:17:47 PM CET 2023
* https://xrfragment.org
* SPDX-License-Identifier: MPL-2.0
*/
@@ -656,16 +656,16 @@ window.XRFMENU = {
// enable meetings
let startMeeting = () => {
aScene.setAttribute('meeting', 'id: xrfragments')
- $('a#meeting').innerText = '📍 new meeting location'
+ $('a#meeting').innerText = '🧑🤝🧑 breakout meeting'
+ $('a#meeting').setAttribute('aria-description','breakout room')
}
$('a#meeting').addEventListener('click', () => {
if( aScene.getAttribute('meeting') ){ // meeting already, start breakout room
let parentRoom = document.location.href
XRFMENU.updateHashPosition(true)
- let visitorname = aScene.getAttribute("meeting").visitorname
- aScene.removeAttribute('meeting')
- // breakoutroom
- aScene.setAttribute('meeting', `id: xrfragments; visitorname: ${visitorname}; parentRoom: ${parentRoom}`)
+ let meeting = $('[meeting]').components['meeting']
+ meeting.data.parentRoom = parentRoom
+ meeting.update()
}else startMeeting()
})
if( document.location.hash.match(/(#|&)meet/) ) startMeeting()
diff --git a/example/aframe/sandbox/index.html b/example/aframe/sandbox/index.html
index 0bd6308..54cad83 100644
--- a/example/aframe/sandbox/index.html
+++ b/example/aframe/sandbox/index.html
@@ -38,24 +38,17 @@
This XR experience works on almost any device.
- Allowing rich audiovisual events without forcing
- use of a VR/AR headset (it's awesome though ♥️)
+ Allowing rich audiovisual events with(out)
+ VR/AR headsets (it's awesome though ♥️)
-
- ${
- $$('.menu>.btn').map( (btn) => {
- let info = btn.getAttribute("aria-description")
- return info && info != "help menu" ? `| ${btn.outerHTML} | ${info} |
` : ''
- }).join('\n')
- }
-
This uses only open standards:
- 📦 visit 3D models using URLs
+ 📦 surf 3D models using URLs
🧑🤝🧑 meet inside hyperlinked 3D models
- 🚫 no proprietary tech/game-engines
+ 🚫 no proprietary tech/game engines or platforms
+ 🙈 unhosted, privacy-friendly, avatar-agnostic scenes
🔗 XR Fragments for 3D hyper-linking & navigation
- 📷 Serverless P2P WebRTC using trystero
- 🅰 AFRAME + Three.js for WebXR
+ 📷 Serverless & encrypted P2P WebRTC using trystero
+ 🦍 WebXR using AFRAME + Three.js
🙉 go selfhost worlds-in-a-webpage
♥️ Be sustainable: go 100% opensource
diff --git a/src/3rd/js/aframe/meeting.js b/src/3rd/js/aframe/meeting.js
index f2daad0..d6e485d 100644
--- a/src/3rd/js/aframe/meeting.js
+++ b/src/3rd/js/aframe/meeting.js
@@ -8,6 +8,12 @@ AFRAME.registerComponent('meeting', {
if( this.room ) this.room.leave()
this.meeting.remove()
},
+ update: function(){
+ setTimeout( () => {
+ this.remove()
+ this.init()
+ },100)
+ },
init: function(){
// embed https://github.com/dmotz/trystero (trystero-torrent.min.js build)
@@ -129,7 +135,7 @@ AFRAME.registerComponent('meeting', {
this.initChatLine()
- if( !this.data.visitorname ) this.chat.append("💁 Hi there! Please enter your name")
+ if( !this.data.visitorname ) this.chat.append("Please enter your name below",["info"])
else{
if( this.data.parentRoom ) this.chat.append(`leaving ${this.data.parentRoom}`,["info"]);
this.trysteroInit()
@@ -288,7 +294,7 @@ AFRAME.registerComponent('meeting', {
if( e.key !== "Enter" ) return
if( !this.data.visitorname ){
this.data.visitorname = chatline.value
- this.chat.append("btw. camera/mic access is totally optional ♥️")
+ this.chat.append("note: camera/mic access is totally optional ♥️",["info"])
this.trysteroInit()
}else{
let str = `${this.idsToNames[ this.room.selfId ]}: ${chatline.value.substr(0,65515).trim()}`
@@ -334,15 +340,19 @@ AFRAME.registerComponent('meeting', {
a.push(t1)
t = t2.join(x)
let y = (!(x.match(/:\/\//)) ? 'https://' : '') + x
+ let attr = 'target="_blank"'
if (isNaN(x) ){
- let url_human = y.split('/')[2]
- let isXRFragment = y.match("pos=")
+ let url_human = y.split('/')[2]
+ let isXRFragment = y.match(/\.(glb|gltf|obj|usdz|fbx|col)/)
if( isXRFragment ){ // detect xr fragments
- url_human = y.replace(/.*[?\?]/,'') // shorten xr fragment links
+ isMeeting = y.match(/(#|&)meet/)
+ url_human = y.replace(/.*[?\?]/,'') // shorten xr fragment links
.replace(/[?\&]meet/,'')
y = y.replace(/.*[\?]/, '?') // start from search (to prevent page-refresh)
+ attr = ''
+ if( isMeeting ) attr = `onclick="$('[meeting]').components['meeting'].update()"`
}
- a.push(`${url_human}`)
+ a.push(`${url_human}`)
}else
a.push(x)
})
diff --git a/src/3rd/js/menu.js b/src/3rd/js/menu.js
index 87771e2..ee00509 100644
--- a/src/3rd/js/menu.js
+++ b/src/3rd/js/menu.js
@@ -52,16 +52,16 @@ window.XRFMENU = {
// enable meetings
let startMeeting = () => {
aScene.setAttribute('meeting', 'id: xrfragments')
- $('a#meeting').innerText = '📍 new meeting location'
+ $('a#meeting').innerText = '🧑🤝🧑 breakout meeting'
+ $('a#meeting').setAttribute('aria-description','breakout room')
}
$('a#meeting').addEventListener('click', () => {
if( aScene.getAttribute('meeting') ){ // meeting already, start breakout room
let parentRoom = document.location.href
XRFMENU.updateHashPosition(true)
- let visitorname = aScene.getAttribute("meeting").visitorname
- aScene.removeAttribute('meeting')
- // breakoutroom
- aScene.setAttribute('meeting', `id: xrfragments; visitorname: ${visitorname}; parentRoom: ${parentRoom}`)
+ let meeting = $('[meeting]').components['meeting']
+ meeting.data.parentRoom = parentRoom
+ meeting.update()
}else startMeeting()
})
if( document.location.hash.match(/(#|&)meet/) ) startMeeting()