data-navigator 2.1.0 → 2.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunk-MPFBSVCV.js +1 -0
- package/dist/{chunk-PEL3ZYDS.mjs → chunk-TZKH227U.js} +1 -1
- package/dist/consts.cjs +1 -0
- package/dist/consts.js +1 -1
- package/dist/examples/basic_list/bokeh.d.ts +1 -0
- package/dist/examples/bokeh.d.ts +1 -0
- package/dist/examples/docs.d.ts +1 -0
- package/dist/examples/force-graph.d.ts +3 -1
- package/dist/index.cjs +1453 -0
- package/dist/index.js +1262 -1353
- package/dist/input.cjs +1 -0
- package/dist/input.js +1 -1
- package/dist/rendering.cjs +1 -0
- package/dist/rendering.js +1 -1
- package/dist/src/data-navigator.d.ts +4 -0
- package/dist/structure.cjs +1 -0
- package/dist/structure.js +1 -1
- package/dist/utilities.cjs +1 -0
- package/dist/utilities.js +1 -1
- package/package.json +9 -17
- package/LICENSE +0 -21
- package/README.md +0 -79
- package/dist/chunk-2RRWU73A.mjs +0 -1
- package/dist/chunk-AJKFNWNF.mjs +0 -1
- package/dist/chunk-CCACYVYB.mjs +0 -1
- package/dist/chunk-CR5KNX3N.mjs +0 -1
- package/dist/chunk-FFVDZNCV.mjs +0 -1
- package/dist/chunk-GP5LYFFJ.mjs +0 -1
- package/dist/chunk-QTJ23SVE.mjs +0 -18
- package/dist/chunk-SQY245BV.mjs +0 -177
- package/dist/chunk-UIGW7IEM.mjs +0 -1
- package/dist/chunk-XICEDMQZ.mjs +0 -1
- package/dist/chunk-ZAQVAU5P.mjs +0 -1
- package/dist/consts.mjs +0 -1
- package/dist/index.mjs +0 -1307
- package/dist/input.mjs +0 -1
- package/dist/rendering.mjs +0 -1
- package/dist/structure.mjs +0 -1
- package/dist/utilities.mjs +0 -1
- /package/dist/{chunk-K476QBP2.mjs → chunk-YE5N6UCT.js} +0 -0
- /package/dist/{src/test-cases.d.ts → examples/basic_list/basic_list.d.ts} +0 -0
package/dist/input.mjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{b as c,f as g}from"./chunk-PEL3ZYDS.mjs";var v=r=>{let n={},u=c,l=g;return n.moveTo=e=>{let t=r.structure.nodes[e];if(t)return t},n.move=(e,t)=>{if(e){let o=r.structure.nodes[e];if(o.edges){let s=null,a=0,d=l[t];if(!d)return;let y=(f,i)=>{if(f!==t)return null;let p={target:typeof i.target=="string"?i.target:i.target(o,e),source:typeof i.source=="string"?i.source:i.source(o,e)};return p[d.direction]!==e?p[d.direction]:null};for(a=0;a<o.edges.length;a++){let f=r.structure.edges[o.edges[a]];if(f.navigationRules.forEach(i=>{s||(s=y(i,f))}),s)break}return s?n.moveTo(s):void 0}}},n.enter=()=>{if(r.entryPoint)return n.moveTo(r.entryPoint);console.error("No entry point was specified in InputOptions, returning undefined")},n.exit=()=>{if(r.exitPoint)return r.exitPoint;console.error("No exit point was specified in InputOptions, returning undefined")},n.keydownValidator=e=>{let t=u[e.code];if(t)return t},n.focus=e=>{let t=document.getElementById(e);t&&t.focus()},n.setNavigationKeyBindings=e=>{e?(u={},l=e,Object.keys(e).forEach(t=>{let o=e[t];u[o.key]=t})):(u=c,l=g)},n.setNavigationKeyBindings(r.navigationRules),n};export{v as default};
|
package/dist/rendering.mjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{j as m}from"./chunk-PEL3ZYDS.mjs";var I=t=>{let w=a=>{e.wrapper.setAttribute("aria-activedescendant",a.srcElement.id)},g=()=>{e.wrapper.setAttribute("aria-activedescendant","")},e={},f=!1,n={cssClass:m.cssClass,spatialProperties:{...m.spatialProperties},semantics:{...m.semantics},parentSemantics:{...m.parentSemantics},existingElement:{...m.existingElement}};return t.defaults&&(n.cssClass=t.defaults.cssClass||n.cssClass,n.spatialProperties=t.defaults.spatialProperties?{...n.spatialProperties,...t.defaults.spatialProperties}:n.spatialProperties,n.semantics=t.defaults.semantics?{...n.semantics,...t.defaults.semantics}:n.semantics,n.parentSemantics=t.defaults.parentSemantics?{...n.parentSemantics,...t.defaults.parentSemantics}:n.parentSemantics,n.existingElement=t.defaults.existingElement?{...n.existingElement,...t.defaults.existingElement}:n.existingElement),e.initialize=()=>{if(f){console.error(`The renderer wrapper has already been initialized successfully, RenderingOptions.suffixId is: ${t.suffixId}. No further action was taken.`);return}if(t.root&&document.getElementById(t.root.id))e.root=document.getElementById(t.root.id);else{console.error("No root element found, cannot build: RenderingOptions.root.id must reference an existing DOM element in order to render children.");return}if(e.root.style.position="relative",e.root.classList.add("dn-root"),!t.suffixId){console.error("No suffix id found: options.suffixId must be specified.");return}return e.wrapper=document.createElement("div"),e.wrapper.id="dn-wrapper-"+t.suffixId,e.wrapper.setAttribute("role","application"),e.wrapper.setAttribute("aria-label",t.root.description||"Data navigation structure"),e.wrapper.setAttribute("aria-activedescendant",""),e.wrapper.classList.add("dn-wrapper"),e.wrapper.style.width=t.root&&t.root.width?t.root.width:"100%",t.root&&t.root.height&&(e.wrapper.style.height=t.root.height),t.entryButton&&t.entryButton.include&&(e.entryButton=document.createElement("button"),e.entryButton.id="dn-entry-button-"+t.suffixId,e.entryButton.classList.add("dn-entry-button"),e.entryButton.innerText="Enter navigation area",t.entryButton.callbacks&&t.entryButton.callbacks.click&&e.entryButton.addEventListener("click",t.entryButton.callbacks.click),t.entryButton.callbacks&&t.entryButton.callbacks.focus&&e.entryButton.addEventListener("focus",t.entryButton.callbacks.focus),e.wrapper.appendChild(e.entryButton)),e.root.appendChild(e.wrapper),t.exitElement?.include&&(e.exitElement=document.createElement("div"),e.exitElement.id="dn-exit-"+t.suffixId,e.exitElement.classList.add("dn-exit-position"),e.exitElement.innerText="End of data structure.",e.exitElement.setAttribute("aria-label","End of data structure."),e.exitElement.setAttribute("role","note"),e.exitElement.setAttribute("tabindex","-1"),e.exitElement.style.display="none",e.exitElement.addEventListener("focus",a=>{e.exitElement.style.display="block",e.clearStructure(),t.exitElement?.callbacks?.focus&&t.exitElement.callbacks.focus(a)}),e.exitElement.addEventListener("blur",a=>{e.exitElement.style.display="none",t.exitElement?.callbacks?.blur&&t.exitElement.callbacks.blur(a)}),e.root.appendChild(e.exitElement)),f=!0,e.root},e.render=a=>{let d=a.renderId+"",u=t.elementData[d];if(!u){console.warn(`Render data not found with renderId: ${d}. Failed to render.`);return}if(!f){console.error("render() was called before initialize(), renderer must be initialized first.");return}let v=!1,A={},s=(i,o,l)=>{let c=u[i]||n[i],h=l&&v?A[o]:c[o],S=n[i][o];return typeof c=="function"?c(u,a.datum):typeof h=="function"?h(u,a.datum):h||S||(o?void 0:c)};v=s("existingElement","useForSpatialProperties"),A=s("existingElement","spatialProperties");let B=parseFloat(s("spatialProperties","width",!0)||0),k=parseFloat(s("spatialProperties","height",!0)||0),b=parseFloat(s("spatialProperties","x",!0)||0),x=parseFloat(s("spatialProperties","y",!0)||0),r=document.createElement(s("parentSemantics","elementType")),E=s("parentSemantics","attributes");typeof E=="object"&&Object.keys(E).forEach(i=>{r.setAttribute(i,E[i])}),r.setAttribute("role",s("parentSemantics","role")),r.id=d,r.classList.add("dn-node"),r.classList.add(s("cssClass")),r.style.width=B+"px",r.style.height=k+"px",r.style.left=b+"px",r.style.top=x+"px",r.setAttribute("tabindex","0"),r.addEventListener("focus",w),r.addEventListener("blur",g);let p=document.createElement(s("semantics","elementType")),y=s("semantics","attributes");typeof y=="object"&&Object.keys(y).forEach(i=>{r.setAttribute(i,y[i])}),p.setAttribute("role",s("semantics","role")),p.classList.add("dn-node-text"),u.showText&&(p.innerText=u.semantics.label);let L=s("semantics","label");L||console.error("Accessibility error: a label must be supplied to every rendered element using semantics.label."),p.setAttribute("aria-label",L),r.appendChild(p);let P=s("spatialProperties","path");if(P){let i=B+b+10,o=k+x+10,l=document.createElementNS("http://www.w3.org/2000/svg","svg");l.setAttribute("width",i+""),l.setAttribute("height",o+""),l.setAttribute("viewBox",`0 0 ${i} ${o}`),l.style.left=-b+"px",l.style.top=-x+"px",l.classList.add("dn-node-svg"),l.setAttribute("role","presentation"),l.setAttribute("focusable","false");let c=document.createElementNS("http://www.w3.org/2000/svg","path");c.setAttribute("d",P),c.classList.add("dn-node-path"),l.appendChild(c),r.appendChild(l)}return e.wrapper.appendChild(r),r},e.remove=a=>{let d=document.getElementById(a);e.wrapper.getAttribute("aria-activedescendant")===a&&e.wrapper.setAttribute("aria-activedescendant",""),d&&(d.removeEventListener("focus",w),d.removeEventListener("blur",g),d.remove())},e.clearStructure=()=>{[...e.wrapper.children].forEach(a=>{e.entryButton&&e.entryButton===a||e.remove(a.id)})},e};export{I as default};
|
package/dist/structure.mjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as T,b as F}from"./chunk-K476QBP2.mjs";import{a as $,c as P,e as k,f as C,g as w,i as B}from"./chunk-PEL3ZYDS.mjs";var z=e=>e.dataType==="vega-lite"||e.dataType==="vl"||e.dataType==="Vega-Lite"?G(e):U(e),G=e=>{let y=B,o={},u={},h={},t=0,s=e.groupInclusionCriteria?e.groupInclusionCriteria:()=>!0,f=e.itemInclusionCriteria?e.itemInclusionCriteria:()=>!0,i=e.datumInclusionCriteria?e.datumInclusionCriteria:()=>!0,l=e.vegaLiteView._renderer._origin,v=e.vegaLiteView._scenegraph.root.items[0].mark.items[0],d=(r,n)=>{if(r["data-navigator-id"])return r["data-navigator-id"];let b=`dn-node-${n}-${t}`;return t++,r["data-navigator-id"]=b,b},a=r=>{let n=o[r],b=n.index,p=n.level,j=n.parent,O=[],K=j.items[b-1];if(K){let g=d(K,p);if(o[g]){let E=`${g}-${n.id}`;O.push(E),u[E]||(u[E]={source:g,target:n.id,navigationRules:["left","right"]})}}let I=j.items[b+1];if(I){let g=d(I,p);if(o[g]){let E=`${n.id}-${g}`;O.push(E),u[E]||(u[E]={source:n.id,target:g,navigationRules:["left","right"]})}}if(p==="group"&&j.items[b].items){let E=(j.items[b].items[0].mark.items[0].items||j.items[b].items)[0],D=d(E,"item");if(o[D]){let _=`${n.id}-${D}`;O.push(_),u[_]||(u[_]={source:n.id,target:D,navigationRules:["parent","child"]})}}else if(p==="item"){let g=d(j,"group");if(o[g]){let E=`${g}-${n.id}`;O.push(E),u[E]||(u[E]={source:g,target:n.id,navigationRules:["parent","child"]})}}return e.exitFunction&&(O.push("any-exit"),u["any-exit"]||(u["any-exit"]={source:e.getCurrent,target:e.exitFunction,navigationRules:["exit"]})),O.push("any-undo"),u["any-undo"]||(u["any-undo"]={source:e.getCurrent,target:e.getPrevious,navigationRules:["undo"]}),O},m=(r,n,b,p,j)=>{let O=d(r,n),K="render-"+O,I=b||[0,0];o[O]={},o[O].d={},o[O].id=O,o[O].renderId=K,o[O].index=p,o[O].level=n,o[O].parent=j,h[K]={},h[K].renderId=K,h[K].spatialProperties={},h[K].spatialProperties.x=r.bounds.x1+I[0],h[K].spatialProperties.y=r.bounds.y1+I[1],h[K].spatialProperties.width=r.bounds.x2-r.bounds.x1,h[K].spatialProperties.height=r.bounds.y2-r.bounds.y1,h[K].cssClass="dn-vega-lite-node",r.datum&&Object.keys(r.datum).forEach(g=>{let E=r.datum[g];i(g,E,r.datum,n,e.vegaLiteSpec)&&(o[O].d[e.keyRenamingHash&&e.keyRenamingHash[g]?e.keyRenamingHash[g]:g]=E)}),h[K].semantics={},h[K].semantics.label=e.nodeDescriber?e.nodeDescriber(o[O].d,r,n):T(o[O].d)},c=0;return v.items.forEach(r=>{if(s(r,c,e.vegaLiteSpec)){m(r,"group",l,c,v);let n=0,b=r.items[0].mark.items[0].items?r.items[0].mark.items[0]:r;b.items.forEach(p=>{f(p,n,r,e.vegaLiteSpec)&&m(p,"item",l,n,b),n++})}c++}),Object.keys(o).forEach(r=>{o[r].edges=a(r)}),{nodes:o,edges:u,elementData:h,navigationRules:y}},V=e=>{let y=0,o={};e.data.forEach(u=>{let h=typeof e.idKey=="function"?e.idKey(u):e.idKey;u[h]="_"+y,e.keysForIdGeneration&&e.keysForIdGeneration.forEach(t=>{t in u&&(typeof u[t]=="string"?(o[t]||(o[t]=0),o[u[t]]||(o[u[t]]=0),u[h]+="_"+t+o[t]+"_"+u[t]+o[u[t]],o[t]++,o[u[t]]++):(o[t]||(o[t]=0),u[h]+="_"+t+o[t],o[t]++))}),y++})},q=e=>{let y={};return e.data.forEach(o=>{e.idKey||console.error("Building nodes. A key string must be supplied in options.idKey to specify the id keys of every node.");let u=typeof e.idKey=="function"?e.idKey(o):e.idKey,h=o[u];if(!h){console.error(`Building nodes. Each datum in options.data must contain an id. When matching the id key string ${u}, this datum has no id: ${JSON.stringify(o)}.`);return}if(y[h]){console.error(`Building nodes. Each id for data in options.data must be unique. This id is not unique: ${h}.`);return}else{let t=typeof e.renderIdKey=="function"?e.renderIdKey(o):e.renderIdKey;y[h]={id:h,edges:[],renderId:t?o[t]||"":o.renderIdKey||"",data:o}}}),y},A=(e,y)=>{let o={};if(e.dimensions?.parentOptions?.addLevel0){let t=e.dimensions.parentOptions.addLevel0;y[t.id]={...t,dimensionLevel:0}}let u=[...w],h=(t,s)=>{let f=s.numericalExtents[0],i=s.numericalExtents[1];s.numericalExtents[0]=f<t?f:t,s.numericalExtents[1]=i>t?i:t};return e.data.forEach(t=>{let s=e.dimensions.values||[],f=0;s.forEach(i=>{if(!i.dimensionKey){console.error(`Building nodes, parsing dimensions. Each dimension in options.dimensions must contain a dimensionKey. This dimension has no key: ${JSON.stringify(i)}.`);return}if(i.dimensionKey in t){let l=t[i.dimensionKey],v=typeof i.operations?.filterFunction=="function"?i.operations.filterFunction(t,i):!0;if(l!==void 0&&v){if(i.type||(i.type=typeof l=="bigint"||typeof l=="number"?"numerical":"categorical"),!o[i.dimensionKey]){let c=typeof i.nodeId=="function"?i.nodeId(i,e.data):i.nodeId||F(i.dimensionKey),R=typeof i.renderId=="function"?i.renderId(i,e.data):i.renderId||c;o[i.dimensionKey]={dimensionKey:i.dimensionKey,nodeId:c,divisions:{},numericalExtents:[1/0,-1/0],type:i.type,operations:{compressSparseDivisions:i.operations?.compressSparseDivisions||!1,sortFunction:i.operations?.sortFunction||void 0},behavior:i.behavior||{extents:"circular"},navigationRules:i.navigationRules||{sibling_sibling:u.length?[...u.shift()]:["previous_"+i.dimensionKey,"next_"+i.dimensionKey],parent_child:["parent_"+i.dimensionKey,"child"]}},y[c]={id:c,renderId:R,derivedNode:i.dimensionKey,edges:[],dimensionLevel:1,data:o[i.dimensionKey],renderingStrategy:i.renderingStrategy||"singleSquare"}}let d=o[i.dimensionKey],a=null;if(i.type==="categorical"){let c=typeof i.divisionOptions?.divisionNodeIds=="function"?i.divisionOptions.divisionNodeIds(i.dimensionKey,l,f):F(d.nodeId+"_"+l);if(a=d.divisions[c],!a){a=d.divisions[c]={id:c,sortFunction:i.divisionOptions?.sortFunction||void 0,values:{}};let R=typeof i.divisionOptions?.divisionRenderIds=="function"?i.divisionOptions.divisionRenderIds(i.dimensionKey,l,f):c;y[c]={id:c,renderId:R,derivedNode:i.dimensionKey,edges:[],dimensionLevel:2,data:{...a},renderingStrategy:i.divisionOptions?.renderingStrategy||"singleSquare"},y[c].data[i.dimensionKey]=l}}else{a=d.divisions[d.nodeId],a||(a=d.divisions[d.nodeId]={id:d.nodeId,sortFunction:i.divisionOptions?.sortFunction||void 0,values:{}}),i.operations||(i.operations={});let c=i.operations.createNumericalSubdivisions;d.subdivisions=typeof c=="number"&&c<1?1:c||1,c!==1&&(d.divisionOptions||(d.divisionOptions=i.divisionOptions),h(l,d))}let m=typeof e.idKey=="function"?e.idKey(t):e.idKey;a.values[t[m]]=t}}f++})}),Object.keys(o).forEach(t=>{let s=o[t],f=s.divisions;if(s.type==="numerical"){f[s.nodeId].values=Object.fromEntries(Object.entries(f[s.nodeId].values).sort((v,d)=>typeof s.operations?.sortFunction=="function"?s.operations.sortFunction(v[1],d[1],s):v[1][t]-d[1][t]));let l=f[s.nodeId].values;if(s.numericalExtents[0]!==1/0&&s.subdivisions!==1){let v=Object.keys(l),d=typeof s.subdivisions=="function"?s.subdivisions(t,l):s.subdivisions,m=(s.numericalExtents[1]-s.numericalExtents[0])/d,c=s.numericalExtents[0]+m,R=0,r=0;for(c=s.numericalExtents[0]+m;c<=s.numericalExtents[1];c+=m){let n=typeof s.divisionOptions?.divisionNodeIds=="function"?s.divisionOptions.divisionNodeIds(t,c,c):s.nodeId+"_"+c;s.divisions[n]={id:n,sortFunction:s.divisionOptions?.sortFunction||void 0,values:{}};let b=typeof s.divisionOptions?.divisionRenderIds=="function"?s.divisionOptions.divisionRenderIds(t,c,c):n;y[n]={id:n,renderId:b,derivedNode:t,edges:[],data:s.divisions[n],dimensionLevel:2,renderingStrategy:s.divisionOptions?.renderingStrategy||"singleSquare"};let p=!1;for(;!p&&r<v.length;){let j=l[v[r]];j[t]<=c?s.divisions[n].values[j.id]=j:(c+=m,p=!0),r++}R++}delete f[t]}}else typeof s.operations?.sortFunction=="function"&&(s.divisions=Object.fromEntries(Object.entries(f).sort((l,v)=>s.operations.sortFunction(l[1],v[1],s))));Object.keys(s.divisions).forEach(l=>{let v=s.divisions[l];typeof v.sortFunction=="function"&&(v.values=Object.fromEntries(Object.entries(v.values).sort((d,a)=>v.sortFunction(d[1],a[1],v))))})}),Object.keys(o).forEach(t=>{let s=o[t];if(s.operations.compressSparseDivisions){let f=Object.keys(s.divisions),i={},l=!0;if(f.forEach(v=>{let d=s.divisions[v],a=Object.keys(d.values);a.length<=1?a.forEach(m=>{i[m]={...d.values[m]}}):l=!1}),l){let v={id:s.nodeId,values:i};f.forEach(d=>{delete y[d]}),s.divisions={},s.divisions[s.nodeId]=v}}}),e.dimensions.adjustDimensions&&(o=e.dimensions.adjustDimensions(o)),o},H=(e,y,o)=>{let u={},h=(s,f)=>{y[s].edges.indexOf(f)===-1&&y[s].edges.push(f)},t=(s,f,i,l)=>{let v=`${s}-${f}`,d=e.useDirectedEdges?`${f}-${v}`:v,a=!l||l==="source",m=!l||l==="target",c=R=>{u[R]?u[R].navigationRules.push(...i||[]):u[R]={source:s,target:f,navigationRules:i?[...i]:[]}};c(v),e.useDirectedEdges&&m&&c(d),a&&h(s,v),m&&h(f,d)};if(o&&Object.keys(o).length){let s=Object.keys(o),f=e.dimensions?.parentOptions?.level1Options?.order,i=f||s,l=0,v=e.dimensions?.parentOptions||{},d=v.level1Options?.behavior?.extents||"terminal",a=v.addLevel0,m=a?v.level1Options?.navigationRules?.parent_child||["parent","child"]:[],c=v.level1Options?.navigationRules?.sibling_sibling||["left","right"],R=typeof i[0]=="string"?f?y[i[0]]:y[o[i[0]].nodeId]:i[0];a&&t(a.id,R.id,m,"source"),i.forEach(r=>{let n=typeof r=="string"?f?y[r]:y[o[r].nodeId]:r;if(n===r&&!y[n.id]&&(y[n.id]=n),a&&(e.useDirectedEdges?t(n.id,a.id,m,"source"):t(a.id,n.id,m,"target")),l===i.length-1&&d==="circular")t(n.id,R.id,c);else if(l===i.length-1&&d==="bridgedCustom")t(n.id,v.level1Options.behavior.customBridgePost,c);else if(l<i.length-1){let b=typeof i[l+1]=="string"?f?y[i[l+1]]:y[o[i[l+1]].nodeId]:i[l+1];t(n.id,b.id,c)}!l&&d==="bridgedCustom"&&t(v.level1Options.behavior.customBridgePost,n.id,c),l++}),s.forEach(r=>{let n=o[r],b=n.behavior?.extents||"circular";n.divisions||console.error(`Parsing dimensions. The dimension using the key ${r} is missing the divisions property. dimension.divisions should be supplied. ${JSON.stringify(n)}.`);let p=Object.keys(n.divisions),j=n.divisions[p[0]];if(p.length!==1)t(n.nodeId,j.id,n.navigationRules.parent_child,"source");else{let K=Object.keys(j.values),I=typeof e.idKey=="function"?e.idKey(j.values[K[0]]):e.idKey;t(n.nodeId,j.values[K[0]][I],n.navigationRules.parent_child,"source")}let O=0;p.forEach(K=>{let I=n.divisions[K];O===p.length-1&&(b==="circular"||b==="bridgedCousins"||b==="bridgedCustom")?t(I.id,n.divisions[p[0]].id,n.navigationRules.sibling_sibling):O<p.length-1&&t(I.id,n.divisions[p[O+1]].id,n.navigationRules.sibling_sibling);let g=Object.keys(I.values);e.useDirectedEdges?t(I.id,n.nodeId,n.navigationRules.parent_child,"source"):t(n.nodeId,I.id,n.navigationRules.parent_child,"target");let E=typeof e.idKey=="function"?e.idKey(I.values[g[0]]):e.idKey;t(I.id,I.values[g[0]][E],n.navigationRules.parent_child,"source");let D=0;g.length>1&&g.forEach(_=>{let x=I.values[_],S=typeof e.idKey=="function"?e.idKey(x):e.idKey,L=p.length!==1?I.id:n.nodeId;if(e.useDirectedEdges?t(x[S],L,n.navigationRules.parent_child,"source"):t(L,x[S],n.navigationRules.parent_child,"target"),D===g.length-1&&b==="circular"){let N=typeof e.idKey=="function"?e.idKey(I.values[g[0]]):e.idKey;t(x[S],I.values[g[0]][N],n.navigationRules.sibling_sibling)}else if(D===g.length-1&&b==="bridgedCousins")if(O!==p.length-1){let N=typeof e.idKey=="function"?e.idKey(n.divisions[p[O+1]].values[g[0]]):e.idKey;t(x[S],n.divisions[p[O+1]].values[g[0]][N],n.navigationRules.sibling_sibling)}else{let N=typeof e.idKey=="function"?e.idKey(n.divisions[p[0]].values[g[0]]):e.idKey;t(x[S],n.divisions[p[0]].values[g[0]][N],n.navigationRules.sibling_sibling)}else if(D===g.length-1&&b==="bridgedCustom")t(x[S],n.behavior.customBridgePost,n.navigationRules.sibling_sibling);else if(D<g.length-1){let N=typeof e.idKey=="function"?e.idKey(I.values[g[D+1]]):e.idKey;t(x[S],I.values[g[D+1]][N],n.navigationRules.sibling_sibling)}if(!D&&b==="bridgedCousins")if(O!==0){let N=typeof e.idKey=="function"?e.idKey(n.divisions[p[O-1]].values[g[g.length-1]]):e.idKey;t(n.divisions[p[O-1]].values[g[g.length-1]][N],x[S],n.navigationRules.sibling_sibling)}else{let N=typeof e.idKey=="function"?e.idKey(n.divisions[p[p.length-1]].values[g[g.length-1]]):e.idKey;t(n.divisions[p[p.length-1]].values[g[g.length-1]][N],x[S],n.navigationRules.sibling_sibling)}else!D&&b==="bridgedCustom"&&t(n.behavior.customBridgePrevious,x[S],n.navigationRules.sibling_sibling);D++}),O++})})}return Object.keys(y).forEach(s=>{let f=y[s];e.genericEdges?.length&&e.genericEdges.forEach(i=>{u[i.edgeId]||(u[i.edgeId]=i.edge),(!i.conditional||i.conditional&&i.conditional(f,i))&&f.edges.push(i.edgeId)})}),u},J=(e,y,o)=>{let u=e.navigationRules;if(!u){let h=Object.keys(o||{});h.length>6&&console.error(`Building navigationRules. Dimension count is too high to automatically generate key commands. It is recommend you reduce your dimensions to 6 or fewer for end-user experience. If not, you must provide your own navigation rules in options.navigationRules. Details: Count is ${h.length}. Dimensions counted: ${h.join(", ")}.`);let t={},s={},f={},i=[...k],l=[...P],v=(d,a)=>{let m=d&&a,c=!1,R=!1;if((t[d]||s[d])&&(s[d]={...t[d]},c=!0),a&&(t[a]||s[a])&&(s[a]={...t[a]},R=!0),m&&!c&&!R){i.length||console.error("Building navigationRules. Dimension count is too high to automatically generate key commands, we have run out of keyboard key pairs to assign. You must either provide your own navigation rules in options.navigationRules, provide rules when generating dimensions, or reduce dimension count.");let r=[...i.shift()];l.splice(l.indexOf(r[0]),1),l.splice(l.indexOf(r[1]),1),s[d]={direction:e.useDirectedEdges?"target":"source",key:r[0]},s[a]={direction:"target",key:r[1]}}else{if(!s[d]&&l.length){let r=l.shift(),n=[];i.forEach(b=>{r!==b[0]&&r!==b[1]&&n.push(b)}),i=n,s[d]={direction:e.useDirectedEdges?"target":"source",key:r}}if(a&&!s[a]&&l.length){let r=l.shift(),n=[];i.forEach(b=>{r!==b[0]&&r!==b[1]&&n.push(b)}),i=n,s[a]={direction:"target",key:r}}l.length||(s[d]||(f[d]=d),a&&!s[a]&&(f[a]=a))}};if(Object.keys(C).forEach(d=>{let a={...C[d]};e.useDirectedEdges&&(a.direction="target"),t[d]=a}),h.length){if(e.dimensions?.parentOptions?.addLevel0){let d=e.dimensions.parentOptions.level1Options?.navigationRules?.parent_child||["parent","child"];v(d[0],d[1])}h.forEach(d=>{let a=o[d].navigationRules.parent_child,m=o[d].navigationRules.sibling_sibling;v(a[0],a[1]),v(m[0],m[1])})}if(Object.keys(y).forEach(d=>{y[d].navigationRules.forEach(a=>{s[a]||v(a)})}),Object.keys(f).length){let d={};Object.keys(s).forEach(m=>{d[s[m].key]=s[m].key}),Object.keys(t).forEach(m=>{!d[t[m].key]&&!$[t[m].key]&&l.push(t[m].key)});let a={...f};f={},Object.keys(a).forEach(m=>{v(m)}),Object.keys(f).length&&console.error(`Building navigationRules. There are no more keys left to assign automatically. Recommended fixes: use fewer dimensions, use fewer GenericEdges, or build your own navigationRules. Rules remaining without keyboard keys: ${Object.keys(f).join(", ")}.`)}u=s}return u},U=e=>{e.addIds&&V(e);let y=q(e),o=A(e,y),u=H(e,y,o),h=J(e,u,o);return{nodes:y,edges:u,dimensions:o,navigationRules:h}};export{V as addSimpleDataIDs,H as buildEdges,G as buildNodeStructureFromVegaLite,q as buildNodes,J as buildRules,U as buildStructure,z as default,A as scaffoldDimensions};
|
package/dist/utilities.mjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a,b}from"./chunk-K476QBP2.mjs";export{b as createValidId,a as describeNode};
|
|
File without changes
|
|
File without changes
|