//- Orbit router declaration for latter generation Create a window.orbit.components, accessible by all components with the route declaration. Components can also get benefits from the `getRoute` function Eg. ``` window.orbit.getRoute('chat', true) window.orbit.getRoute('uxnzsa') // Where uxnzsa is the uniq of the component ``` will return the route of the first chat component, if exists, or triggers an error. - let routes = new Set(); const getRoute = (type, returnFirst = false) => { let availables = components.filter(c => c.type == type || c.uniq == type); components.forEach(c => { if (c.extensions) { c.extensions.forEach(e => { if (e.type == type || e.uniq == type) { availables.push(e); } }); } }); if (availables.length > 1) { if (returnFirst) { return availables[0].route; } else { return availables[availables.length - 1].route; } } else if (availables.length < 1) { console.error(`No component found for route ${type}`); } else { return availables[0].route; } } const getComponent = (type, returnFirst = false) => { let availables = components.filter(c=>c.type==type); if(availables.length > 1) { if(returnFirst) { return availables[0]; } else { console.error(`Too much components availables for type ${type}`); } } else if(availables.length < 1) { console.error(`No component found for type ${type}`); } else { return availables[0]; } } for component of components - if(typeof component.route === 'undefined') { component.route = component.type; } if(component.route) { component.uniq = Math.random().toString(16).slice(2); let route = component.route; if (routes.has(component.route)) { route += "-" + component.uniq; } routes.add(route); component.route = route; } if(component.extensions) for extension of component.extensions - if(typeof extension.route === 'undefined') { extension.route = extension.type; } if(extension.route) { extension.uniq = Math.random().toString(16).slice(2); let route = extension.route; if (routes.has(extension.route)) { route += "-" + extension.uniq; } routes.add(route); extension.route = route; } - const defaultComponent = components.filter(e=>e.defaultRoute != undefined); let defaultRoute = "dashboard"; if(defaultComponent.length == 1) { defaultRoute = defaultComponent[0].uniq; } - const orbitComponents = `window.orbit={};window.orbit.components = ${JSON.stringify(components)};window.orbit.defaultRoute = "${defaultRoute}";window.orbit.client = ${JSON.stringify(client)};window.hubl = window.orbit;`; script!=orbitComponents