diff --git a/dist/xrfragment.aframe.all.js b/dist/xrfragment.aframe.all.js
index 76e4957..f993b08 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 05:17:47 PM CET 2023
+ * v0.5.1 generated at Fri Dec 15 06:46:07 PM CET 2023
* https://xrfragment.org
* SPDX-License-Identifier: MPL-2.0
*/
@@ -870,9 +870,12 @@ window.XRFMENU = {
newHash += `&${lastPos}`
document.location.hash = newHash.replace(/&&/,'&')
.replace(/#&/,'')
+ XRFMENU.copyToClipboard( window.location.href );
+ },
+
+ copyToClipboard(text){
// copy url to clipboard
- var dummy = document.createElement('input'),
- text = window.location.href;
+ var dummy = document.createElement('input')
document.body.appendChild(dummy);
dummy.value = text;
dummy.select();
@@ -881,9 +884,13 @@ window.XRFMENU = {
},
share(){
- XRFMENU.updateHashPosition()
+ let inMeeting = $('[meeting]')
+ let url = window.location.href
+ if( !inMeeting ) XRFMENU.updateHashPosition()
+ else url = $('[meeting]').components['meeting'].data.link
+ XRFMENU.copyToClipboard( url )
// End of *TODO*
- window.notify(`
Link copied to clipboard!
Now share it with your friends ❤️
+ window.notify(`${ inMeeting ? 'Meeting link ' : 'Link'} copied to clipboard!
Now share it with your friends ❤️
@@ -895,9 +902,9 @@ window.XRFMENU = {
`,{timeout:2000000})
// draw QR code
setTimeout( () => {
- let QR = window.QR
+ let QR = window.QR
QR.canvas = document.getElementById('qrcode')
- QR.draw( document.location.href, QR.canvas )
+ QR.draw( url, QR.canvas )
},0)
}
}
@@ -3155,7 +3162,8 @@ AFRAME.registerComponent('meeting', {
schema:{
id:{ required:true, type:'string'},
visitorname:{required:false,type:'string'},
- parentRoom:{required:false,type:'string'}
+ parentRoom:{required:false,type:'string'},
+ link:{required:false,type:'string'}
},
remove: function(){
if( this.room ) this.room.leave()
@@ -3201,7 +3209,9 @@ AFRAME.registerComponent('meeting', {
filter: brightness(1.8);
cursor:pointer;
}
- #chatbar {
+
+ #chatbar,
+ button#showchat{
z-index: 1500;
position: fixed;
bottom: 20px;
@@ -3214,6 +3224,15 @@ AFRAME.registerComponent('meeting', {
box-sizing: border-box;
box-shadow: 0px 0px 5px 5px #0002;
}
+ button#showchat{
+ z-index:1550;
+ color:white;
+ border:0;
+ display:none;
+ height: 44px;
+ background:#07F;
+ font-weight:bold;
+ }
#chatbar input{
border:none;
width:90%;
@@ -3244,7 +3263,6 @@ AFRAME.registerComponent('meeting', {
background: #333;
color: #FFF;
font-size: 14px;
- font-weight: bold;
padding: 0px 16px;
}
#chat .msg.info a,
@@ -3276,8 +3294,9 @@ AFRAME.registerComponent('meeting', {
+
-
+
`
document.body.appendChild(el)
@@ -3303,7 +3322,7 @@ AFRAME.registerComponent('meeting', {
if( classes ) classes.map( (c) => el.classList.add(c) )
this.chat.appendChild(el) // send to screen
this.chat.innerHTML += '
'
- this.chat.log.push(str)
+ if( !classes ) this.chat.log.push(str)
}
if( buttons ){
for( let i in buttons ){
@@ -3323,7 +3342,7 @@ AFRAME.registerComponent('meeting', {
if( !document.location.hash.match(/meet/) ){
document.location.hash += document.location.hash.match(/#/) ? '&meet' : '#meet'
}
- let roomname = this.roomname = document.location.href
+ let roomname = this.roomname = this.data.link = document.location.href
const config = this.config = {appId: this.data.id }
const room = this.room = joinRoom(config, roomname )
this.chat.append("joined meeting at "+roomname,["info"]);
@@ -3399,6 +3418,7 @@ AFRAME.registerComponent('meeting', {
this.addVideo(stream,peerId)
})
+ // show hide chat on small screens
},
addVideo: function(stream,peerId){
@@ -3446,8 +3466,10 @@ AFRAME.registerComponent('meeting', {
chatline.addEventListener("keydown", (e) => {
if( e.key !== "Enter" ) return
if( !this.data.visitorname ){
- this.data.visitorname = chatline.value
+ this.data.visitorname = chatline.value.toLowerCase()
+ this.data.visitorname = this.data.visitorname.replace(/[^a-z]+/g,'-')
this.chat.append("note: camera/mic access is totally optional ♥️",["info"])
+ this.chatline.setAttribute("placeholder","chat here")
this.trysteroInit()
}else{
let str = `${this.idsToNames[ this.room.selfId ]}: ${chatline.value.substr(0,65515).trim()}`
@@ -3457,6 +3479,19 @@ AFRAME.registerComponent('meeting', {
event.preventDefault();
event.target.blur()
})
+
+ // on small screens/mobile make chat toggle-able
+ if( window.outerWidth < 1024 ){
+ let show = (state) => () => {
+ $('#chat').style.display = state ? '' : 'none'
+ $('#chatline').style.display = state ? '' : 'none'
+ $('button#showchat').style.display = state ? 'none' : 'block'
+ }
+ $('.a-canvas').addEventListener('click', show(false) )
+ $('.a-canvas').addEventListener('touchstart', show(false) )
+ $('#showchat').addEventListener('touchstart', show(true) )
+ $('#showchat').addEventListener('click', show(true) )
+ }
},
initChat: function(){
diff --git a/dist/xrfragment.aframe.js b/dist/xrfragment.aframe.js
index 12b7722..67e4a90 100644
--- a/dist/xrfragment.aframe.js
+++ b/dist/xrfragment.aframe.js
@@ -1,5 +1,5 @@
/*
- * v0.5.1 generated at Fri Dec 15 05:17:47 PM CET 2023
+ * v0.5.1 generated at Fri Dec 15 06:46:07 PM CET 2023
* https://xrfragment.org
* SPDX-License-Identifier: MPL-2.0
*/
@@ -864,9 +864,12 @@ window.XRFMENU = {
newHash += `&${lastPos}`
document.location.hash = newHash.replace(/&&/,'&')
.replace(/#&/,'')
+ XRFMENU.copyToClipboard( window.location.href );
+ },
+
+ copyToClipboard(text){
// copy url to clipboard
- var dummy = document.createElement('input'),
- text = window.location.href;
+ var dummy = document.createElement('input')
document.body.appendChild(dummy);
dummy.value = text;
dummy.select();
@@ -875,9 +878,13 @@ window.XRFMENU = {
},
share(){
- XRFMENU.updateHashPosition()
+ let inMeeting = $('[meeting]')
+ let url = window.location.href
+ if( !inMeeting ) XRFMENU.updateHashPosition()
+ else url = $('[meeting]').components['meeting'].data.link
+ XRFMENU.copyToClipboard( url )
// End of *TODO*
- window.notify(`Link copied to clipboard!
Now share it with your friends ❤️
+ window.notify(`${ inMeeting ? 'Meeting link ' : 'Link'} copied to clipboard!
Now share it with your friends ❤️
@@ -889,9 +896,9 @@ window.XRFMENU = {
`,{timeout:2000000})
// draw QR code
setTimeout( () => {
- let QR = window.QR
+ let QR = window.QR
QR.canvas = document.getElementById('qrcode')
- QR.draw( document.location.href, QR.canvas )
+ QR.draw( url, QR.canvas )
},0)
}
}
@@ -3149,7 +3156,8 @@ AFRAME.registerComponent('meeting', {
schema:{
id:{ required:true, type:'string'},
visitorname:{required:false,type:'string'},
- parentRoom:{required:false,type:'string'}
+ parentRoom:{required:false,type:'string'},
+ link:{required:false,type:'string'}
},
remove: function(){
if( this.room ) this.room.leave()
@@ -3195,7 +3203,9 @@ AFRAME.registerComponent('meeting', {
filter: brightness(1.8);
cursor:pointer;
}
- #chatbar {
+
+ #chatbar,
+ button#showchat{
z-index: 1500;
position: fixed;
bottom: 20px;
@@ -3208,6 +3218,15 @@ AFRAME.registerComponent('meeting', {
box-sizing: border-box;
box-shadow: 0px 0px 5px 5px #0002;
}
+ button#showchat{
+ z-index:1550;
+ color:white;
+ border:0;
+ display:none;
+ height: 44px;
+ background:#07F;
+ font-weight:bold;
+ }
#chatbar input{
border:none;
width:90%;
@@ -3238,7 +3257,6 @@ AFRAME.registerComponent('meeting', {
background: #333;
color: #FFF;
font-size: 14px;
- font-weight: bold;
padding: 0px 16px;
}
#chat .msg.info a,
@@ -3270,8 +3288,9 @@ AFRAME.registerComponent('meeting', {
+
-
+
`
document.body.appendChild(el)
@@ -3297,7 +3316,7 @@ AFRAME.registerComponent('meeting', {
if( classes ) classes.map( (c) => el.classList.add(c) )
this.chat.appendChild(el) // send to screen
this.chat.innerHTML += '
'
- this.chat.log.push(str)
+ if( !classes ) this.chat.log.push(str)
}
if( buttons ){
for( let i in buttons ){
@@ -3317,7 +3336,7 @@ AFRAME.registerComponent('meeting', {
if( !document.location.hash.match(/meet/) ){
document.location.hash += document.location.hash.match(/#/) ? '&meet' : '#meet'
}
- let roomname = this.roomname = document.location.href
+ let roomname = this.roomname = this.data.link = document.location.href
const config = this.config = {appId: this.data.id }
const room = this.room = joinRoom(config, roomname )
this.chat.append("joined meeting at "+roomname,["info"]);
@@ -3393,6 +3412,7 @@ AFRAME.registerComponent('meeting', {
this.addVideo(stream,peerId)
})
+ // show hide chat on small screens
},
addVideo: function(stream,peerId){
@@ -3440,8 +3460,10 @@ AFRAME.registerComponent('meeting', {
chatline.addEventListener("keydown", (e) => {
if( e.key !== "Enter" ) return
if( !this.data.visitorname ){
- this.data.visitorname = chatline.value
+ this.data.visitorname = chatline.value.toLowerCase()
+ this.data.visitorname = this.data.visitorname.replace(/[^a-z]+/g,'-')
this.chat.append("note: camera/mic access is totally optional ♥️",["info"])
+ this.chatline.setAttribute("placeholder","chat here")
this.trysteroInit()
}else{
let str = `${this.idsToNames[ this.room.selfId ]}: ${chatline.value.substr(0,65515).trim()}`
@@ -3451,6 +3473,19 @@ AFRAME.registerComponent('meeting', {
event.preventDefault();
event.target.blur()
})
+
+ // on small screens/mobile make chat toggle-able
+ if( window.outerWidth < 1024 ){
+ let show = (state) => () => {
+ $('#chat').style.display = state ? '' : 'none'
+ $('#chatline').style.display = state ? '' : 'none'
+ $('button#showchat').style.display = state ? 'none' : 'block'
+ }
+ $('.a-canvas').addEventListener('click', show(false) )
+ $('.a-canvas').addEventListener('touchstart', show(false) )
+ $('#showchat').addEventListener('touchstart', show(true) )
+ $('#showchat').addEventListener('click', show(true) )
+ }
},
initChat: function(){
diff --git a/dist/xrfragment.module.js b/dist/xrfragment.module.js
index fbf0c46..6606e0d 100644
--- a/dist/xrfragment.module.js
+++ b/dist/xrfragment.module.js
@@ -1,3 +1,208 @@
+/*
+ * v0.5.1 generated at Fri Dec 15 06:46:07 PM CET 2023
+ * https://xrfragment.org
+ * SPDX-License-Identifier: MPL-2.0
+ */
+/*
+ * v0.5.1 generated at Fri Dec 15 06:45:46 PM CET 2023
+ * https://xrfragment.org
+ * SPDX-License-Identifier: MPL-2.0
+ */
+/*
+ * v0.5.1 generated at Fri Dec 15 06:45:25 PM CET 2023
+ * https://xrfragment.org
+ * SPDX-License-Identifier: MPL-2.0
+ */
+/*
+ * v0.5.1 generated at Fri Dec 15 06:39:36 PM CET 2023
+ * https://xrfragment.org
+ * SPDX-License-Identifier: MPL-2.0
+ */
+/*
+ * v0.5.1 generated at Fri Dec 15 06:38:40 PM CET 2023
+ * https://xrfragment.org
+ * SPDX-License-Identifier: MPL-2.0
+ */
+/*
+ * v0.5.1 generated at Fri Dec 15 06:33:19 PM CET 2023
+ * https://xrfragment.org
+ * SPDX-License-Identifier: MPL-2.0
+ */
+/*
+ * v0.5.1 generated at Fri Dec 15 06:32:30 PM CET 2023
+ * https://xrfragment.org
+ * SPDX-License-Identifier: MPL-2.0
+ */
+/*
+ * v0.5.1 generated at Fri Dec 15 06:31:16 PM CET 2023
+ * https://xrfragment.org
+ * SPDX-License-Identifier: MPL-2.0
+ */
+/*
+ * v0.5.1 generated at Fri Dec 15 06:29:51 PM CET 2023
+ * https://xrfragment.org
+ * SPDX-License-Identifier: MPL-2.0
+ */
+/*
+ * v0.5.1 generated at Fri Dec 15 06:29:15 PM CET 2023
+ * https://xrfragment.org
+ * SPDX-License-Identifier: MPL-2.0
+ */
+/*
+ * v0.5.1 generated at Fri Dec 15 06:27:53 PM CET 2023
+ * https://xrfragment.org
+ * SPDX-License-Identifier: MPL-2.0
+ */
+/*
+ * v0.5.1 generated at Fri Dec 15 06:27:29 PM CET 2023
+ * https://xrfragment.org
+ * SPDX-License-Identifier: MPL-2.0
+ */
+/*
+ * v0.5.1 generated at Fri Dec 15 06:27:27 PM CET 2023
+ * https://xrfragment.org
+ * SPDX-License-Identifier: MPL-2.0
+ */
+/*
+ * v0.5.1 generated at Fri Dec 15 06:25:02 PM CET 2023
+ * https://xrfragment.org
+ * SPDX-License-Identifier: MPL-2.0
+ */
+/*
+ * v0.5.1 generated at Fri Dec 15 06:24:09 PM CET 2023
+ * https://xrfragment.org
+ * SPDX-License-Identifier: MPL-2.0
+ */
+/*
+ * v0.5.1 generated at Fri Dec 15 06:23:51 PM CET 2023
+ * https://xrfragment.org
+ * SPDX-License-Identifier: MPL-2.0
+ */
+/*
+ * v0.5.1 generated at Fri Dec 15 06:20:39 PM CET 2023
+ * https://xrfragment.org
+ * SPDX-License-Identifier: MPL-2.0
+ */
+/*
+ * v0.5.1 generated at Fri Dec 15 06:20:25 PM CET 2023
+ * https://xrfragment.org
+ * SPDX-License-Identifier: MPL-2.0
+ */
+/*
+ * v0.5.1 generated at Fri Dec 15 06:19:40 PM CET 2023
+ * https://xrfragment.org
+ * SPDX-License-Identifier: MPL-2.0
+ */
+/*
+ * v0.5.1 generated at Fri Dec 15 06:19:08 PM CET 2023
+ * https://xrfragment.org
+ * SPDX-License-Identifier: MPL-2.0
+ */
+/*
+ * v0.5.1 generated at Fri Dec 15 06:16:58 PM CET 2023
+ * https://xrfragment.org
+ * SPDX-License-Identifier: MPL-2.0
+ */
+/*
+ * v0.5.1 generated at Fri Dec 15 06:12:57 PM CET 2023
+ * https://xrfragment.org
+ * SPDX-License-Identifier: MPL-2.0
+ */
+/*
+ * v0.5.1 generated at Fri Dec 15 06:12:18 PM CET 2023
+ * https://xrfragment.org
+ * SPDX-License-Identifier: MPL-2.0
+ */
+/*
+ * v0.5.1 generated at Fri Dec 15 06:07:59 PM CET 2023
+ * https://xrfragment.org
+ * SPDX-License-Identifier: MPL-2.0
+ */
+/*
+ * v0.5.1 generated at Fri Dec 15 06:06:29 PM CET 2023
+ * https://xrfragment.org
+ * SPDX-License-Identifier: MPL-2.0
+ */
+/*
+ * v0.5.1 generated at Fri Dec 15 06:06:26 PM CET 2023
+ * https://xrfragment.org
+ * SPDX-License-Identifier: MPL-2.0
+ */
+/*
+ * v0.5.1 generated at Fri Dec 15 06:05:41 PM CET 2023
+ * https://xrfragment.org
+ * SPDX-License-Identifier: MPL-2.0
+ */
+/*
+ * v0.5.1 generated at Fri Dec 15 06:02:48 PM CET 2023
+ * https://xrfragment.org
+ * SPDX-License-Identifier: MPL-2.0
+ */
+/*
+ * v0.5.1 generated at Fri Dec 15 06:01:03 PM CET 2023
+ * https://xrfragment.org
+ * SPDX-License-Identifier: MPL-2.0
+ */
+/*
+ * v0.5.1 generated at Fri Dec 15 06:00:55 PM CET 2023
+ * https://xrfragment.org
+ * SPDX-License-Identifier: MPL-2.0
+ */
+/*
+ * v0.5.1 generated at Fri Dec 15 05:57:07 PM CET 2023
+ * https://xrfragment.org
+ * SPDX-License-Identifier: MPL-2.0
+ */
+/*
+ * v0.5.1 generated at Fri Dec 15 05:56:24 PM CET 2023
+ * https://xrfragment.org
+ * SPDX-License-Identifier: MPL-2.0
+ */
+/*
+ * v0.5.1 generated at Fri Dec 15 05:52:12 PM CET 2023
+ * https://xrfragment.org
+ * SPDX-License-Identifier: MPL-2.0
+ */
+/*
+ * v0.5.1 generated at Fri Dec 15 05:48:18 PM CET 2023
+ * https://xrfragment.org
+ * SPDX-License-Identifier: MPL-2.0
+ */
+/*
+ * v0.5.1 generated at Fri Dec 15 05:42:10 PM CET 2023
+ * https://xrfragment.org
+ * SPDX-License-Identifier: MPL-2.0
+ */
+/*
+ * v0.5.1 generated at Fri Dec 15 05:39:58 PM CET 2023
+ * https://xrfragment.org
+ * SPDX-License-Identifier: MPL-2.0
+ */
+/*
+ * v0.5.1 generated at Fri Dec 15 05:34:09 PM CET 2023
+ * https://xrfragment.org
+ * SPDX-License-Identifier: MPL-2.0
+ */
+/*
+ * v0.5.1 generated at Fri Dec 15 05:33:47 PM CET 2023
+ * https://xrfragment.org
+ * SPDX-License-Identifier: MPL-2.0
+ */
+/*
+ * v0.5.1 generated at Fri Dec 15 05:31:25 PM CET 2023
+ * https://xrfragment.org
+ * SPDX-License-Identifier: MPL-2.0
+ */
+/*
+ * v0.5.1 generated at Fri Dec 15 05:28:02 PM CET 2023
+ * https://xrfragment.org
+ * SPDX-License-Identifier: MPL-2.0
+ */
+/*
+ * v0.5.1 generated at Fri Dec 15 05:23:02 PM CET 2023
+ * https://xrfragment.org
+ * SPDX-License-Identifier: MPL-2.0
+ */
/*
* v0.5.1 generated at Fri Dec 15 05:17:47 PM CET 2023
* https://xrfragment.org
@@ -252622,3 +252827,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 a41bb68..e6b93aa 100644
--- a/dist/xrfragment.three.js
+++ b/dist/xrfragment.three.js
@@ -1,5 +1,5 @@
/*
- * v0.5.1 generated at Fri Dec 15 05:17:47 PM CET 2023
+ * v0.5.1 generated at Fri Dec 15 06:46:07 PM CET 2023
* https://xrfragment.org
* SPDX-License-Identifier: MPL-2.0
*/
@@ -864,9 +864,12 @@ window.XRFMENU = {
newHash += `&${lastPos}`
document.location.hash = newHash.replace(/&&/,'&')
.replace(/#&/,'')
+ XRFMENU.copyToClipboard( window.location.href );
+ },
+
+ copyToClipboard(text){
// copy url to clipboard
- var dummy = document.createElement('input'),
- text = window.location.href;
+ var dummy = document.createElement('input')
document.body.appendChild(dummy);
dummy.value = text;
dummy.select();
@@ -875,9 +878,13 @@ window.XRFMENU = {
},
share(){
- XRFMENU.updateHashPosition()
+ let inMeeting = $('[meeting]')
+ let url = window.location.href
+ if( !inMeeting ) XRFMENU.updateHashPosition()
+ else url = $('[meeting]').components['meeting'].data.link
+ XRFMENU.copyToClipboard( url )
// End of *TODO*
- window.notify(`Link copied to clipboard!
Now share it with your friends ❤️
+ window.notify(`${ inMeeting ? 'Meeting link ' : 'Link'} copied to clipboard!
Now share it with your friends ❤️
@@ -889,9 +896,9 @@ window.XRFMENU = {
`,{timeout:2000000})
// draw QR code
setTimeout( () => {
- let QR = window.QR
+ let QR = window.QR
QR.canvas = document.getElementById('qrcode')
- QR.draw( document.location.href, QR.canvas )
+ QR.draw( url, QR.canvas )
},0)
}
}
diff --git a/dist/xrfragment.three.module.js b/dist/xrfragment.three.module.js
index b749e5d..ac7368e 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 05:17:47 PM CET 2023
+ * v0.5.1 generated at Fri Dec 15 06:46:07 PM CET 2023
* https://xrfragment.org
* SPDX-License-Identifier: MPL-2.0
*/
@@ -864,9 +864,12 @@ window.XRFMENU = {
newHash += `&${lastPos}`
document.location.hash = newHash.replace(/&&/,'&')
.replace(/#&/,'')
+ XRFMENU.copyToClipboard( window.location.href );
+ },
+
+ copyToClipboard(text){
// copy url to clipboard
- var dummy = document.createElement('input'),
- text = window.location.href;
+ var dummy = document.createElement('input')
document.body.appendChild(dummy);
dummy.value = text;
dummy.select();
@@ -875,9 +878,13 @@ window.XRFMENU = {
},
share(){
- XRFMENU.updateHashPosition()
+ let inMeeting = $('[meeting]')
+ let url = window.location.href
+ if( !inMeeting ) XRFMENU.updateHashPosition()
+ else url = $('[meeting]').components['meeting'].data.link
+ XRFMENU.copyToClipboard( url )
// End of *TODO*
- window.notify(`Link copied to clipboard!
Now share it with your friends ❤️
+ window.notify(`${ inMeeting ? 'Meeting link ' : 'Link'} copied to clipboard!
Now share it with your friends ❤️
@@ -889,9 +896,9 @@ window.XRFMENU = {
`,{timeout:2000000})
// draw QR code
setTimeout( () => {
- let QR = window.QR
+ let QR = window.QR
QR.canvas = document.getElementById('qrcode')
- QR.draw( document.location.href, QR.canvas )
+ QR.draw( url, QR.canvas )
},0)
}
}
diff --git a/example/aframe/sandbox/index.html b/example/aframe/sandbox/index.html
index 54cad83..09b2bcd 100644
--- a/example/aframe/sandbox/index.html
+++ b/example/aframe/sandbox/index.html
@@ -43,7 +43,7 @@
This uses only open standards:
📦 surf 3D models using URLs
- 🧑🤝🧑 meet inside hyperlinked 3D models
+ 🧑🤝🧑 instant meetings inside hyperlinked 3D models
🚫 no proprietary tech/game engines or platforms
🙈 unhosted, privacy-friendly, avatar-agnostic scenes
🔗 XR Fragments for 3D hyper-linking & navigation
diff --git a/src/3rd/js/aframe/meeting.js b/src/3rd/js/aframe/meeting.js
index d6e485d..bf7b40a 100644
--- a/src/3rd/js/aframe/meeting.js
+++ b/src/3rd/js/aframe/meeting.js
@@ -2,7 +2,8 @@ AFRAME.registerComponent('meeting', {
schema:{
id:{ required:true, type:'string'},
visitorname:{required:false,type:'string'},
- parentRoom:{required:false,type:'string'}
+ parentRoom:{required:false,type:'string'},
+ link:{required:false,type:'string'}
},
remove: function(){
if( this.room ) this.room.leave()
@@ -48,7 +49,9 @@ AFRAME.registerComponent('meeting', {
filter: brightness(1.8);
cursor:pointer;
}
- #chatbar {
+
+ #chatbar,
+ button#showchat{
z-index: 1500;
position: fixed;
bottom: 20px;
@@ -61,6 +64,15 @@ AFRAME.registerComponent('meeting', {
box-sizing: border-box;
box-shadow: 0px 0px 5px 5px #0002;
}
+ button#showchat{
+ z-index:1550;
+ color:white;
+ border:0;
+ display:none;
+ height: 44px;
+ background:#07F;
+ font-weight:bold;
+ }
#chatbar input{
border:none;
width:90%;
@@ -91,7 +103,6 @@ AFRAME.registerComponent('meeting', {
background: #333;
color: #FFF;
font-size: 14px;
- font-weight: bold;
padding: 0px 16px;
}
#chat .msg.info a,
@@ -123,8 +134,9 @@ AFRAME.registerComponent('meeting', {
+
-
+
`
document.body.appendChild(el)
@@ -150,7 +162,7 @@ AFRAME.registerComponent('meeting', {
if( classes ) classes.map( (c) => el.classList.add(c) )
this.chat.appendChild(el) // send to screen
this.chat.innerHTML += '
'
- this.chat.log.push(str)
+ if( !classes ) this.chat.log.push(str)
}
if( buttons ){
for( let i in buttons ){
@@ -170,7 +182,7 @@ AFRAME.registerComponent('meeting', {
if( !document.location.hash.match(/meet/) ){
document.location.hash += document.location.hash.match(/#/) ? '&meet' : '#meet'
}
- let roomname = this.roomname = document.location.href
+ let roomname = this.roomname = this.data.link = document.location.href
const config = this.config = {appId: this.data.id }
const room = this.room = joinRoom(config, roomname )
this.chat.append("joined meeting at "+roomname,["info"]);
@@ -246,6 +258,7 @@ AFRAME.registerComponent('meeting', {
this.addVideo(stream,peerId)
})
+ // show hide chat on small screens
},
addVideo: function(stream,peerId){
@@ -293,8 +306,10 @@ AFRAME.registerComponent('meeting', {
chatline.addEventListener("keydown", (e) => {
if( e.key !== "Enter" ) return
if( !this.data.visitorname ){
- this.data.visitorname = chatline.value
+ this.data.visitorname = chatline.value.toLowerCase()
+ this.data.visitorname = this.data.visitorname.replace(/[^a-z]+/g,'-')
this.chat.append("note: camera/mic access is totally optional ♥️",["info"])
+ this.chatline.setAttribute("placeholder","chat here")
this.trysteroInit()
}else{
let str = `${this.idsToNames[ this.room.selfId ]}: ${chatline.value.substr(0,65515).trim()}`
@@ -304,6 +319,19 @@ AFRAME.registerComponent('meeting', {
event.preventDefault();
event.target.blur()
})
+
+ // on small screens/mobile make chat toggle-able
+ if( window.outerWidth < 1024 ){
+ let show = (state) => () => {
+ $('#chat').style.display = state ? '' : 'none'
+ $('#chatline').style.display = state ? '' : 'none'
+ $('button#showchat').style.display = state ? 'none' : 'block'
+ }
+ $('.a-canvas').addEventListener('click', show(false) )
+ $('.a-canvas').addEventListener('touchstart', show(false) )
+ $('#showchat').addEventListener('touchstart', show(true) )
+ $('#showchat').addEventListener('click', show(true) )
+ }
},
initChat: function(){
diff --git a/src/3rd/js/menu.js b/src/3rd/js/menu.js
index ee00509..31c1859 100644
--- a/src/3rd/js/menu.js
+++ b/src/3rd/js/menu.js
@@ -260,9 +260,12 @@ window.XRFMENU = {
newHash += `&${lastPos}`
document.location.hash = newHash.replace(/&&/,'&')
.replace(/#&/,'')
+ XRFMENU.copyToClipboard( window.location.href );
+ },
+
+ copyToClipboard(text){
// copy url to clipboard
- var dummy = document.createElement('input'),
- text = window.location.href;
+ var dummy = document.createElement('input')
document.body.appendChild(dummy);
dummy.value = text;
dummy.select();
@@ -271,9 +274,13 @@ window.XRFMENU = {
},
share(){
- XRFMENU.updateHashPosition()
+ let inMeeting = $('[meeting]')
+ let url = window.location.href
+ if( !inMeeting ) XRFMENU.updateHashPosition()
+ else url = $('[meeting]').components['meeting'].data.link
+ XRFMENU.copyToClipboard( url )
// End of *TODO*
- window.notify(`Link copied to clipboard!
Now share it with your friends ❤️
+ window.notify(`${ inMeeting ? 'Meeting link ' : 'Link'} copied to clipboard!
Now share it with your friends ❤️
@@ -285,9 +292,9 @@ window.XRFMENU = {
`,{timeout:2000000})
// draw QR code
setTimeout( () => {
- let QR = window.QR
+ let QR = window.QR
QR.canvas = document.getElementById('qrcode')
- QR.draw( document.location.href, QR.canvas )
+ QR.draw( url, QR.canvas )
},0)
}
}